mcp-openidea-search
An MCP server that exposes Open Idea's federated search — across open-knowledge providers (OpenAlex, arXiv, Zenodo, Software Heritage, GitHub, GitLab, HuggingFace, PapersWithCode, YouTube, CKAN, Figshare, Kaggle) — to MCP-compatible clients (Claude Desktop, Claude Code, the MCP Inspector, Cursor, etc.).
This package is a thin client over the Open Idea v1 HTTP API. All the federation, deduplication, normalization, and caching happen on Open Idea's side. This repo is fully standalone — no dependency on the Open Idea codebase.
Documentation
| Doc | Contents |
|---|---|
| docs/setup.md | Install, configure, and run the server. |
| docs/architecture.md | Components, flows, and a Mermaid diagram. |
| docs/api-reference.md | Every tool, resource, and data model. |
| docs/claude-desktop.md | Claude Desktop configuration (macOS/Windows/Linux). |
| docs/claude-code.md | Claude Code registration & verification. |
| docs/mcp-inspector.md | Testing with the MCP Inspector. |
| docs/troubleshooting.md | 401s, newline keys, startup failures, and more. |
| docs/development.md | Repo layout, env setup, tests, workflow. |
🚀 Getting Started
This tool connects Claude directly to Open Idea's academic and data search engines. It runs entirely on your local machine using your personal API key. Follow these 4 simple steps to get set up.
Prerequisites
Make sure you have Python 3.10 or higher installed on your computer. You can
check this by running python --version in your terminal.
Step 1: Get Your Free Open Idea API Key
Because this tool queries live databases on your behalf, you need a personal access key.
- Go to openidea.world and sign up or log in.
- Navigate to the Developer Dashboard at openidea.world/developer/api-keys.
- Click Create New Key.
- ⚠️ Copy the key immediately (it starts with
oi_live_...). It will only be shown to you once.
Step 2: Install the Search Tool
Open your terminal (Terminal on Mac/Linux, or PowerShell/Command Prompt on Windows) and run the following command to safely install the tool:
pipx install mcp-openidea-search
(If you do not have pipx configured, you can use
pip install mcp-openidea-search instead).
Step 3: Connect It to Your Claude Client
Choose the instructions below depending on whether you use Claude Code (in your terminal) or the Claude Desktop App.
Option A: For Claude Code (Terminal)
- Close any active Claude sessions by typing
exit. - Run this exact command in your terminal (make sure to replace
YOUR_KEY_HEREwith the actual key you copied in Step 1):
claude mcp add openidea \
-e OPENIDEA_API_URL=https://www.openidea.world \
-e OPENIDEA_API_KEY=YOUR_KEY_HERE \
-- mcp-openidea-search stdio
Option B: For Claude Desktop (App)
- Open your Claude Desktop configuration file. Paste the path below into your
file explorer or terminal to open it:
- Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Mac:
- Open the file in a text editor (like Notepad or VS Code) and add the
following configuration block inside the
"mcpServers"section (replaceYOUR_KEY_HEREwith your actual key):
{
"mcpServers": {
"openidea": {
"command": "mcp-openidea-search",
"args": ["stdio"],
"env": {
"OPENIDEA_API_URL": "https://www.openidea.world",
"OPENIDEA_API_KEY": "YOUR_KEY_HERE"
}
}
}
}
- Completely restart your Claude Desktop application.
Step 4: Try It Out!
You are all set! You do not need to run this tool manually; Claude will wake it up when needed. Open a chat with Claude and ask a natural question:
💬 "Use the openidea MCP to find recent papers on transformer architectures."
Claude will automatically look up the records, pull data from arXiv, GitHub, or HuggingFace, and summarize the answers for you!
Install
Requires Python 3.10+.
# from PyPI (once published)
pipx install mcp-openidea-search
# or directly from source
pip install -e .
Configure
The server reads two environment variables:
| Variable | Required | Description |
|---|---|---|
OPENIDEA_API_URL |
yes | Base URL of the Open Idea API (https://www.openidea.world in production). A trailing slash is stripped automatically. |
OPENIDEA_API_KEY |
yes | Personal Bearer key. Mint one at https://openidea.world/developer/api-keys while signed in. The plaintext is shown only once at creation. |
Both values are whitespace/newline-trimmed before use.
Run
stdio (Claude Desktop / Claude Code)
Add to ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or the equivalent on your OS (see
docs/claude-desktop.md):
{
"mcpServers": {
"openidea": {
"command": "mcp-openidea-search",
"args": ["stdio"],
"env": {
"OPENIDEA_API_URL": "https://www.openidea.world",
"OPENIDEA_API_KEY": "oi_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
For Claude Code, register it with the CLI (see docs/claude-code.md):
claude mcp add openidea \
-e OPENIDEA_API_URL=https://www.openidea.world \
-e OPENIDEA_API_KEY=oi_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx \
-- mcp-openidea-search stdio
Restart your client and ask: "use the openidea MCP to search for transformer architectures".
HTTP/SSE (remote)
OPENIDEA_API_URL=https://www.openidea.world \
OPENIDEA_API_KEY=oi_live_xxx \
mcp-openidea-search http --host 0.0.0.0 --port 8000
Verify with the MCP Inspector:
npx @modelcontextprotocol/inspector http://localhost:8000/sse
Tools and resources
Tools
| Name | Description |
|---|---|
search_papers |
Search for papers (OpenAlex, arXiv, PapersWithCode). |
search_code |
Search for code repos (GitHub, GitLab, Software Heritage). |
search_datasets |
Search for datasets (Zenodo, CKAN, Figshare, Kaggle). |
search_models |
Search for ML models (HuggingFace). |
search_hardware |
Search for open hardware. |
search_videos |
Search for educational videos (YouTube). |
search_all |
Search across all providers. Accepts an optional types: string[] filter. |
Each tool takes query: string and optional limit: integer (default 20,
range 1–100). Returns a JSON payload { results: Resource[], total: number, … }.
Full schemas and response shapes are in
docs/api-reference.md.
Resources
Single items addressable by URI (openidea://<provider>:<id>):
openidea://openalex:W2741809807
openidea://github:vercel/next.js
Listing resources returns an empty array — they're addressable but not
enumerable. Use the search tools to discover ids, then read_resource to fetch
the canonical record.
Develop
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\Activate.ps1
pip install -e ".[dev]"
pytest -q
See docs/development.md for the full contributor guide.
Troubleshooting
| Symptom | Likely cause |
|---|---|
401 unauthorized errors |
Key is missing, malformed, has a stray newline, or has been revoked. Mint a new one. |
429 rate_limited |
Throughput limit on this key (server retries once). Wait or use a second key. |
| Empty results | Upstream provider down, or type filter excludes all results. Try search_all. |
connection refused |
OPENIDEA_API_URL doesn't point to a running Open Idea instance. |
Full guide: docs/troubleshooting.md.
License
MIT.
Metadata
Release files for mcp-openidea-search 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mcp_openidea_search-0.1.1.tar.gz | 28.6 kB | Without provenance | Details for mcp_openidea_search-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mcp_openidea_search-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for mcp_openidea_search-0.1.1-py3-none-any.whl |
Total release size: 39.8 kB
Release files / mcp_openidea_search-0.1.1.tar.gz
| Download URL | mcp_openidea_search-0.1.1.tar.gz |
|---|---|
| Size | 28.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
03146d1b4b3ddfd85794f6baedcb5b4373edb61b3b353ffceed76911a408eeba
|
|
BLAKE2b-256 checksum How to use checksums |
a1e14ca2b3ce45a1949002a7f0aae04d5183edb014c38661c4e116ca9c27f611
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / mcp_openidea_search-0.1.1-py3-none-any.whl
| Download URL | mcp_openidea_search-0.1.1-py3-none-any.whl |
|---|---|
| Size | 11.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f831cabdb412c8b4c8f4e0e7d818cd3de2636cd884e031b5af42e6a28458d152
|
|
BLAKE2b-256 checksum How to use checksums |
3e12a9e14c17e8c78d8968ba9f7ba2f9a6d6f58e30a0c363d47d9064e87aba3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Security for mcp-openidea-search 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.