Sudoc SRU MCP demo
by geraldineco.huggingface.geraldine/sudoc-sru-mcp
Search the French union catalogue through the sudoc-sru
- Remote endpoint
- 5 tools
Uptime
Checked · every day
100%from 5 days of checks
Up without downtime on 4 of 4 days with data.
- No downtime
- Degraded
- Down over 5 minutes
- No data
- Not checked yet
Response time
Median 1156 ms, slowest 5% 1321 ms for the handshake and the tool list, over 30 days.
How far each check got
- Reached the address 100%
- Completed the handshake 100%
- Listed its tools 100%
5 tools at the last answer.
Every day
| Day | Result | Checks | Median |
|---|---|---|---|
| 4 Nov (today) | No verdict yet | 0 | – |
| 3 Nov | No downtime | 1of 1 | 1138 ms |
| 2 Nov | No downtime | 1of 1 | 1321 ms |
| 1 Nov | No downtime | 1of 1 | 1101 ms |
| 31 Oct | No downtime | 2 | 1094 ms |
A failure counts as down time only when a second check five minutes later fails too. How we check
Connect to the publisher's own endpoint
Paste into Settings › Connectors › Add custom connector:
https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse Run in a terminal:
claude mcp add --transport sse sudoc-sru-mcp https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse Add to ~/.cursor/mcp.json:
Add to ~/.config/devin/mcp_config.json:
Add to mcp.json (Program › Install › Edit mcp.json):
Add to ~/.gemini/settings.json:
Add to config.json in oterm's data folder (~/Library/Application Support/oterm on macOS, ~/.local/share/oterm on Linux, %APPDATA%\oterm on Windows):
Add to ~/.config/eca/config.json (global) or .eca/config.json in the project:
{
"mcpServers": {
"sudoc-sru-mcp": {
"url": "https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse"
}
}
} Add to .vscode/mcp.json:
{
"servers": {
"sudoc-sru-mcp": {
"type": "sse",
"url": "https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse"
}
}
} Add to ~/.config/zed/settings.json:
{
"context_servers": {
"sudoc-sru-mcp": {
"url": "https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse"
}
}
} This server's endpoint speaks only SSE, which this client's documentation does not list among its transports; use another client for it.
Add to cline_mcp_settings.json (MCP Servers › Configure › Configure MCP Servers):
Add to anythingllm_mcp_servers.json in the AnythingLLM storage plugins directory:
Add to Augment Settings Panel – MCP section – Import from JSON (VS Code extension):
{
"mcpServers": {
"sudoc-sru-mcp": {
"type": "sse",
"url": "https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse"
}
}
} Add to ~/.continue/config.yaml:
mcpServers:
- name: "sudoc-sru-mcp"
type: sse
url: "https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse" Add to ~/.config/goose/config.yaml:
extensions:
"sudoc-sru-mcp":
type: streamable_http
name: "sudoc-sru-mcp"
enabled: true
uri: "https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse"
headers: {}
env_keys: []
envs: {}
timeout: 300 This server's endpoint speaks only SSE, which this client's documentation does not list among its transports; use another client for it.
Run in a terminal:
codex mcp add sudoc-sru-mcp --url https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse This server's endpoint speaks only SSE, which this client's documentation does not list among its transports; use another client for it.
Add to ~/.llm/config.json:
Add to resources/assets/config/mcp.json in the installed app:
Add to ~/.boltai/mcp.json:
Add to ~/.bob/settings/mcp.json (global) or .bob/mcp.json (project):
Add to ~/.kiro/settings/mcp.json (user) or .kiro/settings/mcp.json (workspace):
Add to ~/.kiro/settings/mcp.json (user) or .kiro/settings/mcp.json (workspace):
{
"mcpServers": {
"sudoc-sru-mcp": {
"url": "https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse"
}
}
} This server's endpoint speaks only SSE, which this client's documentation does not list among its transports; use another client for it.
Add to ~/.config/agenvoy/mcp.json:
{
"servers": {
"sudoc-sru-mcp": {
"url": "https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse"
}
}
} This server's endpoint speaks only SSE, which this client's documentation does not list among its transports; use another client for it.
Add to ~/.config/amp/settings.json (user) or .amp/settings.json (workspace):
{
"amp.mcpServers": {
"sudoc-sru-mcp": {
"url": "https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse"
}
}
} For agents: the install prompt
Every step above as one Markdown text, for an assistant installing it for you.
# Install the MCP server Sudoc SRU MCP demo (`co.huggingface.geraldine/sudoc-sru-mcp`)
Its page: https://plug.directory/servers/co.huggingface.geraldine/sudoc-sru-mcp
It runs on the publisher's servers; the client connects to its URL.
Use the section for the person's client.
## Claude Desktop
Paste into Settings › Connectors › Add custom connector:
```text
https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse
```
## Claude Code
Run in a terminal:
```sh
claude mcp add --transport sse sudoc-sru-mcp https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse
```
## Cursor, Devin Desktop, LM Studio, Gemini CLI, oterm, ECA
Merge into the place for the person's client:
- Cursor: ~/.cursor/mcp.json
- Devin Desktop: ~/.config/devin/mcp_config.json
- LM Studio: mcp.json (Program › Install › Edit mcp.json)
- Gemini CLI: ~/.gemini/settings.json
- oterm: config.json in oterm's data folder (~/Library/Application Support/oterm on macOS, ~/.local/share/oterm on Linux, %APPDATA%\oterm on Windows)
- ECA: ~/.config/eca/config.json (global) or .eca/config.json in the project
```json
{
"mcpServers": {
"sudoc-sru-mcp": {
"url": "https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse"
}
}
}
```
## VS Code
Merge into .vscode/mcp.json:
```json
{
"servers": {
"sudoc-sru-mcp": {
"type": "sse",
"url": "https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse"
}
}
}
```
## Zed
This server's endpoint speaks only SSE, which this client's documentation does not list among its transports; use another client for it.
## Cline, AnythingLLM, Augment Code
Merge into the place for the person's client:
- Cline: cline_mcp_settings.json (MCP Servers › Configure › Configure MCP Servers)
- AnythingLLM: anythingllm_mcp_servers.json in the AnythingLLM storage plugins directory
- Augment Code: Augment Settings Panel – MCP section – Import from JSON (VS Code extension)
```json
{
"mcpServers": {
"sudoc-sru-mcp": {
"type": "sse",
"url": "https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse"
}
}
}
```
## Continue
Merge into ~/.continue/config.yaml:
```yaml
mcpServers:
- name: "sudoc-sru-mcp"
type: sse
url: "https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse"
```
## Goose
This server's endpoint speaks only SSE, which this client's documentation does not list among its transports; use another client for it.
## Codex
This server's endpoint speaks only SSE, which this client's documentation does not list among its transports; use another client for it.
## mcp-client-cli, TUUI, BoltAI, Bob Shell, Kiro, Kiro CLI
This server's endpoint speaks only SSE, which this client's documentation does not list among its transports; use another client for it.
## Agenvoy
This server's endpoint speaks only SSE, which this client's documentation does not list among its transports; use another client for it.
## Amp
Merge into ~/.config/amp/settings.json (user) or .amp/settings.json (workspace):
```json
{
"amp.mcpServers": {
"sudoc-sru-mcp": {
"url": "https://geraldine-sudoc-sru-mcp.hf.space/gradio_api/mcp/sse"
}
}
}
```
Then restart the client, or reload its MCP servers, and ask it to list the server's tools to confirm it started.
Tools 5
sudoc_sru_mcp_count_recordsCount the Sudoc records matching an SRU query without fetching any of them. One HTTP call with maximumRecords=1. Use it to size a corpus before a large search_sudoc, or to check that a query matches anything before refining it. Same query syntax as search_sudoc — limitations such as tdo, lan or apu must be written into `query` yourself, e.g. "edi=gallimard and lan=fre". Returns: {"source": "sudoc-sru", "command": "count_records", "total_found": int, "returned": 0, "results": [], "query": str, "url_used": str, "error": str | null}sudoc_sru_mcp_lookup_by_isbnFetch the Sudoc records carrying a given ISBN. One ISBN can match several records. Hyphens are optional: "978-2-07-041311-9" and "9782070413119" behave the same. The Sudoc `isb` index covers monographs only; for serials, query the `isn` index through search_sudoc. Returns: {"source": "sudoc-sru", "command": "lookup_by_isbn", "total_found": int, "returned": int, "isbn_queried": str, "results": [<same record shape as search_sudoc>], "error": str | null}sudoc_sru_mcp_lookup_by_ppnFetch one Sudoc record by its PPN, the catalogue's unique record identifier. Returns: {"source": "sudoc-sru", "command": "lookup_by_ppn", "total_found": int, "returned": int, "results": [<same record shape as search_sudoc>], "error": str | null}sudoc_sru_mcp_scan_indexBrowse a Sudoc index alphabetically from a starting term (SRU `scan` operation). Use it to discover the normalized form of a term before writing an exact query, to see its variants, to understand why a query returns nothing, or to read the record count behind each term. Indexes: mti aut per org msu vma fgr msa mee nth res lva fir rec rbc pcp rpc cot tou edi col tab tco sou. Returns: {"source": "sudoc-sru", "command": "scan_index", "total_found": int, "returned": int, "index": str, "start_term": str, "results": [{"term": str | null, "count": int | null}], "error": str | null}sudoc_sru_mcp_search_sudocSearch the French union catalogue Sudoc over the Abes SRU service. Returns: {"source": "sudoc-sru", "command": "search_sudoc", "total_found": int, "returned": int, "query_used": str, "results": [{"source": "sudoc", "id": str, "url": str, "ppn": str, "title": str, "authors": [str], "year": int | null, "publisher": str | null, "sudoc_url": str}], "error": str | null}
From Hugging Face Spaces. Report a problem