About TinyFish Guided Research
TinyFish Guided Research is an MCP server for multi-step research using TinyFish Search and Fetch. It tracks research state and checks evidence and citations, while leaving reasoning to the client model.
Key features
- 01State across research steps
- 02TinyFish Search and Fetch calls
- 03Source screening and deduplication
- 04Claim and evidence tracking
- 05Quote and citation checks
- 06Conflict, budget, and stopping tracking
Use cases
- 01Run multi-step source research
- 02Check citations against fetched sources
- 03Find evidence gaps and trigger follow-up searches
MCP support
It exposes research workflow tools to MCP clients and offers a hosted Streamable HTTP endpoint. The server has no LLM; reasoning is performed by the client model.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
uvx tinyfish-guided-research-mcpTINYFISH_API_KEYSecretTinyFish API key used by Search and Fetch.DATABASE_URLSecretShared PostgreSQL connection URL for durable production state. Recommended for remote/multi-replica hosting.RESEARCH_DB_PATHSQLite persistence path used when DATABASE_URL is unset. Intended for local/single-instance usage.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
20Saved tool list · updated 2w ago
This tool takes no parameters.
Details
From the project READMETinyFish Guided Research MCP
An MCP server that adds a simple research workflow on top of TinyFish Search and Fetch.
The client model does the reasoning. The server keeps track of the research run, handles the search and fetch flow, stores the state, checks evidence and citations, and tells the client what should happen next.
There is no LLM running inside the server.
How it works
A research run usually follows this flow:
Research request
↓
Plan
↓
Search
↓
Review sources
↓
Fetch useful content
↓
Track claims and evidence
↓
Check what is supported or still missing
↓
Research the gaps
↓
Verify citations
↓
Finalize
Search results are treated as candidates first, not as evidence by default.
The server also keeps duplicate sources from being counted more than once. This includes cases where the same paper or source appears through different URLs or mirrors.
Quotes are checked against the fetched source content, while semantic decisions such as whether a passage actually supports a claim are left to the client model.
Conflicting evidence is kept in the research state instead of being ignored, and citations are checked before the research is finalized.
What it handles
- Research state across multiple steps
- TinyFish Search and Fetch calls
- Source screening and duplicate handling
- Claim and evidence tracking
- Quote checks against fetched content
- Conflicting evidence
- Research gaps and follow-up searches
- Citation verification
- Research budgets and stopping conditions
- SQLite and PostgreSQL persistence
Quick start
Hosted
The hosted MCP endpoint is:
https://tinyfish-guided-research-mcp.fastmcp.app/mcp
Use it as a Streamable HTTP MCP server.
Local
Requires Python 3.11+ and a TinyFish API key.
TINYFISH_API_KEY="your-api-key" uvx tinyfish-guided-research-mcp
Example MCP client config:
{
"mcpServers": {
"tinyfish-research": {
"command": "uvx",
"args": ["tinyfish-guided-research-mcp"],
"env": {
"TINYFISH_API_KEY": "your-api-key"
}
}
}
}
The compatibility entrypoint is also available:
uvx --from tinyfish-guided-research-mcp tinyfish-research-mcp
Storage
SQLite is fine for local or single-instance use:
export RESEARCH_DB_PATH="research_state.db"
For hosted or multi-instance deployments, use PostgreSQL:
export DATABASE_URL="postgresql://user:password@host:5432/database?sslmode=require"
PostgreSQL is the better option when more than one server instance can access the same research state.
Distribution
The server is available through PyPI, the official MCP Registry, and the hosted Horizon endpoint.
PyPI:
tinyfish-guided-research-mcp
MCP Registry:
io.github.MohdSaleh/tinyfish-guided-research
Hosted MCP:
https://tinyfish-guided-research-mcp.fastmcp.app/mcp
Development
Clone the repo and install the dependencies:
git clone https://github.com/MohdSaleh/tinyfish-guided-research-mcp.git
cd tinyfish-guided-research-mcp
uv sync --all-extras
Run it locally:
TINYFISH_API_KEY="your-api-key" uv run tinyfish-guided-research-mcp
Run the checks:
uv run ruff check .
uv run ruff format --check .
uv run pyright
uv run pytest
uv run python evals/run_evals.py
uv run pip-audit
uv build
The regular tests cover the implementation and storage layer. The research evals cover cases such as duplicate sources, weak evidence, quote mismatches, superseded claims, and citation coverage.
You can also inspect the MCP tools with:
npx @modelcontextprotocol/inspector \
--cli uv run tinyfish-guided-research-mcp \
--method tools/list
Deploying on Horizon
If you want to deploy your own instance with Prefect Horizon, use:
Entrypoint:
src/tinyfish_research_mcp/server.py:mcp
Dependencies:
pyproject.toml
Set:
TINYFISH_API_KEY
DATABASE_URL
Use PostgreSQL for hosted deployments instead of the local SQLite fallback.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.