Five tools · stdlib + FastMCP · writes only to pending/

The MCP server

A deliberately small Model Context Protocol server that gives any MCP-capable agent a safe interface to this repository: search arXiv, read the dataset, and propose entries — without ever touching papers.json directly.

Tools

search_arxiv

Query the arXiv API for candidate papers — titles, authors, abstract snippets, dates. The discovery agent's front door.

list_papers

Read data/papers.json, filtered by pathway, year, or tag. Compact output for quick dedup checks.

get_paper

The full entry for one id — checks the merged dataset and pending/ alike.

propose_paper

Validate an entry against the schema (required fields, pathway enum, duplicate ids) and write it to data/pending/<id>.json. Refuses duplicates. The only write path.

pending_status

List open proposals awaiting review — id, title, pathway.

Install

One dependency (mcp), one file. From the repository root:

pip install mcp
claude mcp add wam -- python3 mcp/server.py

Or in any MCP client configuration:

{
  "mcpServers": {
    "wam": { "command": "python3", "args": ["mcp/server.py"] }
  }
}
Design intent. The server is stateless and read-mostly: four tools read, one writes, and the write lands in pending/ where the review step guards the gate. New tools should keep that shape — see mcp/README.md.