Skip to main content

Multi-source research (HN, Reddit, GitHub, Brave) over the Model Context Protocol.

Project description

research-dispatcher-mcp

A Model Context Protocol (MCP) server that lets any MCP-capable AI agent run one research query across multiple public sources (Hacker News, Reddit, GitHub, Brave Web Search) in parallel, with source-specific query tuning baked in.

PyPI License: MIT

What it does

Exposes 5 MCP tools:

Tool Source Auth
research_hn Hacker News (Algolia) none
research_reddit Reddit site-wide search none (User-Agent only)
research_github GitHub repositories optional GITHUB_TOKEN for higher rate limit
research_brave Brave Web Search requires BRAVE_API_KEY
research_all All of the above in parallel per-source rules apply

Each tool returns JSON: a list of normalized hits with title, url, score/stars, created_at, and source-specific metadata. research_all aggregates into {source: {status, count, items}}.

Why

AI agents that handle "what's the latest on X" tasks need to consult multiple sources but each has its own API, rate limit, and pitfalls. This server encodes those once so the agent calls one tool and gets normalized results.

Install

Requires Python 3.10+.

pip install canola-research-dispatcher-mcp

Configure your agent

Claude Code

Add to your ~/.claude/mcp.json:

{
  "mcpServers": {
    "research-dispatcher": {
      "command": "research-dispatcher-mcp",
      "env": {
        "GITHUB_TOKEN": "ghp_... (optional)",
        "BRAVE_API_KEY": "... (optional)"
      }
    }
  }
}

Restart Claude Code and the 5 research_* tools become available.

Codex CLI / Cursor / other MCP runtimes

Each runtime has its own MCP server registration. The command is always research-dispatcher-mcp.

Quickstart

"What's the latest on MCP server marketplaces?"
→ agent calls research_all(query="MCP server marketplace", limit=10, since_days=30)
→ HN + Reddit + GitHub returned in parallel, agent synthesizes

Environment variables

Variable Default Purpose
GITHUB_TOKEN unset Raises GitHub rate limit from 60/hr to 5000/hr
BRAVE_API_KEY unset Required to enable research_brave; without it the tool returns a "skipped" notice

Limitations

  • No paywall / logged-in content (X/Twitter, LinkedIn, private subreddits).
  • Reddit site-wide search has noticeably weaker recall than subreddit-specific browsing.
  • Brave's free tier is 2000 calls/month; this server does not currently track quota.
  • Source list is fixed in v0.1; add new sources in src/research_dispatcher_mcp/sources.py.

Development

git clone https://github.com/0x67108864/research-dispatcher-mcp.git
cd research-dispatcher-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest

Related

License

MIT — see LICENSE.

Author

canola_oil — https://0x67108864.github.io/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

canola_research_dispatcher_mcp-0.1.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file canola_research_dispatcher_mcp-0.1.0.tar.gz.

File metadata

File hashes

Hashes for canola_research_dispatcher_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9296853b07398eba2111f9254a475627e680f8a42aad2084c957f626064e57e2
MD5 1169842d2e1cc3e0252a2967cd143bfc
BLAKE2b-256 77422a554ce9270fde4fdc1a27fadff5b1755b2d7410ced3883a223d3fd39f99

See more details on using hashes here.

Provenance

The following attestation bundles were made for canola_research_dispatcher_mcp-0.1.0.tar.gz:

Publisher: publish.yml on 0x67108864/research-dispatcher-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file canola_research_dispatcher_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for canola_research_dispatcher_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e71a84508678dc13b474ec281805c66a8650778c36fcf2e11e3691da8ac23f9d
MD5 cfcf74d86d736fe338d693d90c9a42ca
BLAKE2b-256 a254689e5d42f8f3f9a07f0c0531d62e0e334ce3fea6ea1eabd8e4c7f04f00e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for canola_research_dispatcher_mcp-0.1.0-py3-none-any.whl:

Publisher: publish.yml on 0x67108864/research-dispatcher-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page