Logo Lanfrica

Sudan-Digital-Archive/mcp-server

Domain:

digital infrastructure

Record type:

software
Creator:
Sud
Host:
# Sudan Digital Archive MCP Server This is a Model Context Protocol (MCP) server for the Sudan Digital Archive (SDA). It provides tools to interact with the SDA API, allowing for automations and enhanced search capabilities within MCP-compatible environments like Gemini CLI or Claude Code. ## Features - List and search public and private accessions. - Retrieve detailed metadata for specific accessions. - Manage metadata subjects (list, create, delete). - Update accession details. ## Getting Started ### Prerequisites - Rust (latest stable version) - An API Key for the Sudan Digital Archive. ### Building from Source You are expected to build the binary yourself for your specific platform: ```bash cargo build --release ``` The resulting binary will be located at `target/release/sda-mcp-server`. ### Install **macOS & Linux:** ```bash curl -fsSL raw.githubusercontent.com | sh ``` **Windows (PowerShell):** ```powershell irm raw.githubusercontent.com | iex ``` ### Configuration You can configure the server using command-line arguments or environment variables. - `--api-key` or `API_KEY`: Your SDA API key. - `--base-url`: (Optional) The base URL for the SDA API. ### Integration Example (Gemini/Claude) To use this server with an MCP client, add it to your configuration. Here is an example for Gemini: ```json { "mcpServers": { "sudan-digital-archive": { "command": "sda-mcp-server", "args": [ "--api-key", "YOUR_API_KEY_HERE" ], "env": { "API_KEY": "YOUR_API_KEY_HERE" } } } } ``` ## Note on MCP Compatibility Model Context Protocol is a developing standard. During development, I observed that some MCP clients have issues consuming JSON schemas that use complex optional types (e.g., `Option ` in Rust translating to `anyOf: [..., { "type": "null" }]`). To maximize compatibility with current MCP clients, we have intentionally avoided using optiona …