# Fillin MCP server

Search for AI agents. Closes the LLM-cutoff gap: CVEs, papers, frontier AI, prediction markets.

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-artchristech-fillin
- Website: https://fillin.glyphapi.dev

## Install
- Endpoint: https://fillin.glyphapi.dev/mcp/
- Auth: Not captured

## Setup notes
- Remote endpoint: https://fillin.glyphapi.dev/mcp/

## Tools
- fillin_query - Retrieve documents published after a training cutoff, ranked by similarity.

    Call this whenever the user asks about events, releases, papers, issues,
    or news that might post-date your training data. Fillin only returns
    documents published AFTER `cutoff`, so nothing returned is redundant
    with what the model already knows.

    Args:
        query: Natural-language search query (e.g. "rust async runtimes").
               Max 512 characters.
        cutoff: ISO-8601 date representing the agent's training cutoff
                (e.g. "2026-01-01"). Documents on or before this date are
                excluded from results.
        k: Number of documents to retrieve, 1-20. Defaults to 5.

    Returns:
        A dict with:
          - cutoff: echoed cutoff (ISO timestamp)
          - query: echoed query
          - gap_days: days between cutoff and now
          - results: list of {id, source, url, published_at, title, text, score}
     Endpoint: https://fillin.glyphapi.dev/mcp/
- glyph_search - Same as fillin_query, but returns the result pieces rendered as **photo
    glyph** image(s) — dense, vision-readable pages — followed by a JSON
    citation index ({n, source, url, title, published_at, page}).

    Read the image(s) directly with your vision capability; use the citation
    index to attribute or follow up. Glyphs are for comprehension and
    fact-extraction, not verbatim quotes (vision models paraphrase) — open the
    url for exact text. Billed at the flat /query rate; rendering is free.
     Endpoint: https://fillin.glyphapi.dev/mcp/
- retrieve_auto - One retrieval, auto-picked substrate — the MCP twin of HTTP POST /v1/retrieve with
    substrate="auto".

    Runs a single post-cutoff retrieval, then returns whichever delivery substrate is
    cheapest AND legible for your `reader` model's token billing:

      - text   — raw result pieces (Claude/GPT pixel billing, or any unknown reader).
      - glyph  — a dense photo-glyph image (Gemini/Qwen flat-tile billing) you read with
                 vision; the raw pieces ride along as a citation index.
      - answer — a pre-cited synthesized paragraph (weak tool-callers; needs a server LLM key).

    The trailing JSON block always carries a `selection` object
    {substrate, reader, reader_class, tier, rationale, estimates} so the choice is
    auditable from the honest token math — the same object the HTTP route returns. When the
    pick is glyph, the page image(s) precede that JSON block.

    Pricing matches /v1/retrieve: text/glyph bill the flat /query rate, answer bills the
    answer rate. The answer rate is charged up front and the delta is refunded when the
    pick resolves to text/glyph, so you always pay exactly the right rate.
     Endpoint: https://fillin.glyphapi.dev/mcp/
- encode - Bring your own text -> the cheapest substrate for your reader — the MCP twin of
    HTTP POST /v1/encode.

    Not a search-result rendering trick: this is Glyph as a language anyone can speak.
    Give it a tool result, a RAG chunk, a document — it comes back as whichever form
    (dense photo-glyph image or plain text) is genuinely cheaper for your reader model's
    token billing, with the honest manifest attached. The trailing JSON block always
    carries a `selection` object {substrate, reader, reader_class, tier, rationale,
    estimates} so the choice is auditable from the token math — the same object the
    HTTP route returns.

    Billed at the flat query rate regardless of which substrate is chosen — text and
    glyph cost the same here, unlike retrieve_auto's answer substrate.
     Endpoint: https://fillin.glyphapi.dev/mcp/
- fillin_answer - Synthesized post-cutoff answer with inline citations.

    Use this when your model is small / cheap / weaker at tool-result
    synthesis (Llama, Gemini Flash, Mistral, Nemotron, Qwen). Fillin runs
    a server-side LLM pass over the retrieved post-cutoff documents and
    returns a 150-250 word answer with [title](url) citations already
    embedded — you can quote it directly.

    Premium models (Opus, Sonnet, GPT-4o) usually get better results from
    `fillin_query` and synthesizing themselves, but this tool works for
    any caller. Costs more than fillin_query because of the synthesis pass.

    Returns:
        A dict with:
          - answer: the synthesized paragraph (str | None)
          - citations: list of {title, url} extracted from the answer
          - corpus_match: "strong" | "weak" | "none" — quality of retrieval
          - top_score: float — top reranked similarity score
          - model: the synthesizer model used (e.g. claude-haiku-4-5)
          - reason: set when answer is None (e.g. "no_relevant_docs")
          - results: raw post-cutoff documents (same shape as fillin_query)
          - cutoff, query, gap_days: echoes for context
     Endpoint: https://fillin.glyphapi.dev/mcp/
- fillin_stats - Get corpus stats — total docs, date range, freshness. Endpoint: https://fillin.glyphapi.dev/mcp/
- fillin_health - Liveness + freshness — host, total docs, earliest, latest. No auth required. Endpoint: https://fillin.glyphapi.dev/mcp/
- query_cves - Daily snapshot of CVE / supply-chain advisories from NVD, GitHub
    Security Advisories, and OSV. Use before merging dependency updates,
    when triaging an alert, or when a user asks "is package X compromised".

    Each result row carries a structured `affected` list (one entry per
    affected package: ecosystem, name, vulnerable_range, patched_range) and
    a numeric `severity_score` (CVSS baseScore, nullable on OSV-only rows).
    A buyer can act on the returned row — pin to `patched_range` — without
    a second hop to NVD or GHSA.
     Endpoint: https://fillin.glyphapi.dev/mcp/
- query_papers - Daily snapshot of new research relevant to AI/ML/agents. Union of
    arXiv (cs.AI/cs.LG/cs.CL/cs.CR/cs.DC), HuggingFace daily papers (with
    upvote signal in title), and bioRxiv. Use when a user asks about a
    new technique, paper, or benchmark.
     Endpoint: https://fillin.glyphapi.dev/mcp/
- query_frontier - Daily snapshot of frontier AI lab announcements + HuggingFace
    trending model releases. Sources: OpenAI / DeepMind / Meta / Mistral
    blog RSS, Anthropic + HF blogs (via shared rss corpus), and the HF
    trending models API. Use when a user asks "what model dropped" or
    "did <lab> announce X".
     Endpoint: https://fillin.glyphapi.dev/mcp/
- query_markets - Active prediction markets across Polymarket, Kalshi, Manifold, and
    Metaculus. Use when a user asks "is there a market on X", "what odds
    is the market giving Y", or before any agent action that should be
    informed by a market price.

    Each result row carries the question, venue, close date, volume, and
    a first-sight price snapshot embedded in `text`. Prices in the corpus
    are point-in-time at first ingestion — for live pre-trade pricing,
    follow the `url` to the venue and read the current quote there.
     Endpoint: https://fillin.glyphapi.dev/mcp/
- fillin_market_search - Search the Fillin marketplace for minted (data + reasoning) assets
    matching your fingerprint. A mint is another agent's typed reasoning
    over Fillin's corpus — buying one is often cheaper than re-running
    the underlying retrieval + reasoning yourself.

    Returns {fingerprint, mints[]}. Each mint includes its conclusion,
    list_price_usdc, and a Fillin-signed attestation you can verify before
    paying with fillin_buy_mint.
     Endpoint: https://fillin.glyphapi.dev/mcp/
- fillin_mint - Mint a (data + reasoning) asset on the Fillin marketplace. Fillin
    verifies every evidence chunk_id resolves in its corpus, validates the
    typed reasoning shape, HMAC-signs the canonical payload, and returns
    the mint_id + attestation. Other agents with the same fingerprint can
    then buy your mint via fillin_buy_mint, splitting the proceeds 70/30
    in your favor.

    Requires FILLIN_API_KEY (a Fillin bearer token).
     Endpoint: https://fillin.glyphapi.dev/mcp/
- fillin_buy_mint - Buy a listed mint. Debits your bearer balance, credits the seller
    (minus Fillin's rake), records the transaction, and returns the full
    mint payload including the previously-paywalled reasoning_graph.

    Requires FILLIN_API_KEY with sufficient balance for the mint's list price.
     Endpoint: https://fillin.glyphapi.dev/mcp/

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: io.github.artchristech
- Version: 0.2.1
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: May 23, 2026
- Source: https://registry.modelcontextprotocol.io
