
Sample Deep Research MCP
https://github.com/openai/sample-deep-research-mcp- Category
- AI Agents
- Rank
- No. 1654Tools index
Previous survey · No. 1663 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- openai
- GitHub
- 67 stars
- Date
About
Example MCP server compatible with OpenAI Deep Research. Reference implementation for connecting custom data sources to Deep Research.
What it does
A small Python service exposes cupcake orders through two operations: keyword search and record retrieval by identifier. It loads a local JSON dataset at startup, scans titles, text, and metadata for query tokens, then returns typed results over SSE.
Why it's ranked here
This is a useful teaching specimen because the entire data path stays visible and compact. Typed request results, explicit lookup behavior, and a runnable transport make the protocol concrete. Its narrow dataset and naive search keep it firmly in reference territory, not production infrastructure.
What's good
The code separates compact search results from fuller fetched records, which demonstrates a sensible retrieval pattern. Pydantic models define clear response shapes, FastMCP handles serialization, and the lookup table makes identifier retrieval direct. Dependency versions are pinned, and the MIT license permits broad reuse.
Tradeoffs
Search performs lowercase substring matching for any whitespace-separated token, with no ranking, pagination, phrase handling, or result limit. Every record loads into memory at startup. Missing identifiers raise a generic value error. The server binds only to localhost, and the supplied tree shows no tests, authentication, persistence, or deployment configuration.
How to use it well
Use it to understand the minimum shape of a searchable MCP data source, or as a disposable starting point for adapting a small local corpus. Replace the sample records and search logic before serious use. It does not cover production retrieval quality, access control, durable storage, or operational deployment.
Technical notes+
sample_mcp.py loads records.json with Path(__file__).with_name, builds the module-level LOOKUP dictionary, and defines SearchResult, SearchResultPage, and FetchResult Pydantic models. create_server() constructs FastMCP, registers async search and fetch tools, and the main block runs SSE on 127.0.0.1:8000. Search lowercases and splits the query, concatenates each record's title, text, and metadata values, then accepts a record when any token is a substring. requirements.txt pins FastMCP, MCP, Pydantic, Uvicorn, SSE, and supporting packages. README.md documents virtual-environment setup and direct execution. No test file or test directory appears in the supplied repository tree.
Observed
- License
- MIT License
- Primary language
- Python
- Install surface
- pip installation from a fully pinned requirements.txt dependency list
- Interface
- MCP server using SSE transport on localhost port 8000
- Data source
- A local JSON file containing 50 cupcake order records
- Repository structure
- No test file or test directory appears in the supplied repository tree
Read from README.md, requirements.txt, sample_mcp.py, LICENSE, records.json.
What it can do
Connect custom data sources to OpenAI Deep Research
Custom data source configuration → Integrated data connection for research queries
Serve as MCP server implementation
MCP client requests → Structured MCP protocol responses
Provide reference implementation for MCP integration
Developer requirements for MCP connectivity → Working code example and integration patterns
Enable deep research data retrieval
Research queries and search parameters → Relevant data from connected sources
Bridge external data with OpenAI research workflows
External data repositories and OpenAI Deep Research requests → Formatted data compatible with research analysis
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.