An MCP server for GPT Researcher that allows AI assistants to conduct web research and generate reports via the MCP protocol
This server has fundamental definition quality gaps that prevent reliable agent use. While tool names follow verb conventions (deep_research, quick_search, write_report), parameter documentation is incomplete or absent in several tools. The five tools have been inspected against the source code; tool descriptions are present but lack the specificity needed for robust LLM selection. Most critically: output schemas are not documented anywhere in the visible code, neither in return type hints nor in response structure documentation. The server returns Dict[str,Any] responses without documenting the shape, forcing LLMs to infer structure. Parameters like 'custom_prompt' in write_report lack constraints or validation guidance. The error handling strategy (handle_exception utility) is not visible, making it impossible to verify whether errors guide recovery or just return raw exceptions. No tool is marked with destructive/readonly hints. The deepest issue: tools like get_research_sources and get_research_context depend on research_id from a prior call, but the dependency chain is not documented in either tool's description.
Conduct a web deep research on a given query using GPT Researcher. Use this tool when you need time-sensitive, real-time information like stock prices, news, people, specific knowledge, etc.
Get the full context of the research.
Get the sources used in the research.
Perform a quick web search on a given query and return search results with snippets. This optimizes for speed over quality and is useful when an LLM doesn't need in-depth information on a topic.
Generate a report based on previously conducted research.
No documented output schemas for any tool. All five tools return Dict[str,Any] in the source code with no visible schema definition, structured documentation, or field descriptions. LLMs cannot plan downstream calls or extract specific fields reliably.
Parameter 'custom_prompt' in write_report has no constraints, format hints, or length guidance. It is optional but its interaction with the underlying research is undocumented (does it override? augment? regenerate from scratch?).
Dependency chain not documented: get_research_sources and get_research_context both require a research_id from deep_research, but neither tool description mentions this prerequisite or suggests calling deep_research first.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 51 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 51 | - | v1 |
Tool descriptions lack WHEN-to-use guidance. deep_research and quick_search both conduct searches, but the description of quick_search states it 'optimizes for speed over quality', without explaining when that tradeoff is acceptable or what 'quality' means in the context.
Error handling strategy is opaque. The server calls handle_exception() but the utility function is not visible in the provided source. Without seeing its implementation, we cannot verify whether errors are classified as retryable, include recovery guidance, or simply echo raw exceptions.
Tool annotations missing. No tool is marked with readOnlyHint (all five are read-only per the briefing), destructiveHint, or idempotentHint. These hints are standard in current MCP practice and help agents reason about side effects.