Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,561Letters: 14Defects: 1,336counted just now
teppi

Server definition

Hash
sha256:da813c738a156e9a2e0f056f05fa8536891316f2374c5f051d77f75bda67e02e
What it is
What a remote MCP server returned when asked what it offers: 4 tools

The blob, as servednamed by its sha256

{ "instructions": "Use the arxiv_* tools to access the arXiv paper corpus: search by query, fetch metadata by ID, read full-text HTML, and list the subject category taxonomy. Papers are addressed by arXiv ID (e.g. 2401.12345 or 2401.12345v2 with version); search queries support field prefixes (ti:, au:, abs:, cat:) and boolean operators (AND, OR, ANDNOT).", "tools": [ { "description": "Get full metadata for one or more arXiv papers by ID. Use when you have known IDs from citations, prior search results, or memory.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "paper_ids": { "anyOf": [ { "description": "Single arXiv paper ID (e.g., \"2401.12345\" or \"2401.12345v2\").", "minLength": 1, "type": "string" }, { "description": "Array of up to 10 arXiv paper IDs for batch lookup.", "items": { "minLength": 1, "type": "string" }, "maxItems": 10, "minItems": 1, "type": "array" } ], "description": "arXiv paper ID or array of up to 10 IDs. Format: \"2401.12345\" or \"2401.12345v2\" (with version). Also accepts legacy IDs like \"hep-th/9901001\"." } }, "required": [ "paper_ids" ], "type": "object" }, "name": "arxiv_get_metadata", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "papers", "totalSucceeded" ] }, { "required": [ "error" ] } ], "properties": { "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `no_match`: None of the requested IDs returned data from arXiv. `version_unavailable`: Every requested ID pinned a version the local mirror does not hold, and live arXiv fallback is disabled. `rate_limited`: arXiv has throttled requests (HTTP 429 or \"Rate exceeded.\" body). `invalid_request`: arXiv rejected the request (HTTP 4xx other than 429), e.g. malformed ID syntax. Other values are possible when a failure originates below the handler.", "examples": [ "no_match", "version_unavailable", "rate_limited", "invalid_request" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "not_found": { "description": "Per-input explanations for inputs that could not be returned. Absent when nothing failed.", "items": { "additionalProperties": false, "description": "A requested ID that could not be returned, with the reason it was missed.", "properties": { "detail": { "description": "Additional human-readable context, when available", "type": "string" }, "id": { "description": "arXiv ID that returned no data.", "type": "string" }, "reason": { "description": "Why the paper ID could not be returned.", "enum": [ "not_in_arxiv", "version_not_in_mirror" ], "type": "string" } }, "required": [ "id", "reason" ], "type": "object" }, "type": "array" }, "papers": { "description": "Papers found. May be fewer than requested if some IDs are invalid.", "items": { "additionalProperties": false, "description": "arXiv paper metadata — identifier, title, authors, abstract, categories, and links.", "properties": { "abstract": { "description": "Full abstract text.", "type": "string" }, "abstract_url": { "description": "arXiv abstract page URL.", "type": "string" }, "authors": { "description": "Author names.", "items": { "type": "string" }, "type": "array" }, "categories": { "description": "All arXiv categories assigned to this paper.", "items": { "type": "string" }, "type": "array" }, "comment": { "description": "Author comment (e.g., page count, conference).", "type": "string" }, "doi": { "description": "DOI if available.", "type": "string" }, "id": { "description": "arXiv paper ID (e.g., \"2401.12345v1\").", "type": "string" }, "journal_ref": { "description": "Journal reference if published.", "type": "string" }, "pdf_url": { "description": "Direct PDF download URL.", "type": "string" }, "primary_category": { "description": "Primary arXiv category (e.g., \"cs.CL\").", "type": "string" }, "published": { "description": "Original submission date (ISO 8601).", "type": "string" }, "title": { "description": "Paper title.", "type": "string" }, "updated": { "description": "Last update date (ISO 8601).", "type": "string" } }, "required": [ "id", "title", "authors", "abstract", "primary_category", "categories", "published", "updated", "pdf_url", "abstract_url" ], "type": "object" }, "type": "array" }, "totalSucceeded": { "description": "Number of successful items in 'papers'", "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "type": "object" } }, { "description": "List arXiv category codes and names. Useful for discovering valid category filters for arxiv_search. Lists subject classes only; arxiv_search also accepts a bare archive code (the part before the dot, e.g. \"astro-ph\" or \"cs\") to search a whole archive at once.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "group": { "description": "Filter by top-level group (e.g., \"cs\", \"math\", \"physics\"). Returns all categories if omitted.", "enum": [ "cs", "econ", "eess", "math", "physics", "q-bio", "q-fin", "stat" ], "type": "string" } }, "type": "object" }, "name": "arxiv_list_categories", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "categories", "totalCount" ] }, { "required": [ "error" ] } ], "properties": { "categories": { "description": "arXiv categories matching the filter.", "items": { "additionalProperties": false, "description": "arXiv category — subject code, full name, and top-level group.", "properties": { "code": { "description": "Category code (e.g., \"cs.AI\").", "type": "string" }, "group": { "description": "Top-level group (e.g., \"cs\").", "type": "string" }, "name": { "description": "Full name (e.g., \"Artificial Intelligence\").", "type": "string" } }, "required": [ "code", "name", "group" ], "type": "object" }, "type": "array" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode.", "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "notice": { "description": "Guidance when the group filter returns no categories.", "type": "string" }, "totalCount": { "description": "Total number of categories returned.", "type": "number" } }, "type": "object" } }, { "description": "Fetch the full text of an arXiv paper. Tries arxiv.org/html first, falls back to ar5iv.labs.arxiv.org, and falls back again to text extracted from the PDF when neither has an HTML render — check the source field to know which one answered. Page through long papers with start and max_characters, or pass max_characters null to get the entire body in one call.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "max_characters": { "anyOf": [ { "maximum": 9007199254740991, "minimum": 1, "type": "integer" }, { "type": "null" } ], "default": 100000, "description": "Maximum characters of paper body to return, counted after boilerplate stripping. Defaults to 100,000; pass null to return the entire body in one call. Whole-paper reads can exceed a client tool-result size cap — math-heavy bodies run 300KB-1MB+ — so prefer the default plus start-based paging unless the full text is needed. When truncated, a notice and the total character count are included." }, "paper_id": { "description": "arXiv paper ID (e.g., \"2401.12345\" or \"2401.12345v2\").", "minLength": 1, "type": "string" }, "start": { "default": 0, "description": "Character offset into the cleaned body to begin reading from. Defaults to 0. Use with max_characters to page through long papers — e.g., start=100000 with max_characters=100000 returns chars 100,000–199,999. The total length is reported as body_characters in the response.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "paper_id" ], "type": "object" }, "name": "arxiv_read_paper", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "paper_id", "title", "content", "source", "truncated", "start", "total_characters", "body_characters", "pdf_url", "abstract_url" ] }, { "required": [ "error" ] } ], "properties": { "abstract_url": { "description": "arXiv abstract page URL for attribution.", "type": "string" }, "body_characters": { "description": "Character count of the full cleaned body. Use with start and max_characters to page. Typically 3-4× smaller than total_characters for math-heavy HTML papers.", "type": "number" }, "content": { "description": "Paper body for the requested slice — cleaned HTML when source is arxiv_html or ar5iv, plain text when source is pdf_text. Empty when start is past body_characters.", "type": "string" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `no_match`: Paper ID is not present in the arXiv index. `content_unavailable`: Paper exists but neither arxiv.org/html nor ar5iv has an HTML rendering and arXiv served no PDF either. `pdf_extraction_failed`: Paper has no HTML rendering and its PDF carries no text layer — an image-only or scanned submission. `version_unavailable`: A version-pinned paper_id was requested, arXiv is unreachable, and the local mirror holds only a different version — per-version reads require the live API. `rate_limited`: arXiv has throttled requests (HTTP 429 or \"Rate exceeded.\" body). `invalid_request`: arXiv rejected the metadata lookup (HTTP 4xx other than 429), e.g. malformed ID syntax. Other values are possible when a failure originates below the handler.", "examples": [ "no_match", "content_unavailable", "pdf_extraction_failed", "version_unavailable", "rate_limited", "invalid_request" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "paper_id": { "description": "arXiv paper ID.", "type": "string" }, "pdf_url": { "description": "Direct PDF download URL.", "type": "string" }, "source": { "description": "Which upstream artifact the body was read from. arxiv_html and ar5iv are HTML renders; pdf_text is text extracted from the PDF, where prose is reliable but math, tables, and heading structure are flattened.", "enum": [ "arxiv_html", "ar5iv", "pdf_text" ], "type": "string" }, "start": { "description": "Character offset of the first character in content within the cleaned body.", "type": "number" }, "title": { "description": "Paper title (from metadata, not parsed from HTML).", "type": "string" }, "total_characters": { "description": "Character count of the body before cleaning — the unprocessed HTML body for arxiv_html and ar5iv, and equal to body_characters for pdf_text, which needs no cleaning.", "type": "number" }, "truncated": { "description": "True when more body content exists past this slice (start + content.length < body_characters).", "type": "boolean" } }, "type": "object" } }, { "description": "Search arXiv papers by query with category and sort filters. Returns paper metadata including title, authors, abstract, categories, and links.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "category": { "description": "Restrict results to an arXiv category. A leaf code (\"cs.CL\", \"math.AG\") matches exactly. A bare archive code (\"astro-ph\", \"cond-mat\", \"cs\", \"math\") matches the whole archive — its subject classes plus the legacy flat papers filed before the archive was subdivided. Note \"physics\" is the general-physics archive (physics.*), not the wider physics group: astro-ph, cond-mat, hep-*, quant-ph and the rest are separate archive codes. Use arxiv_list_categories to discover subject classes.", "type": "string" }, "max_results": { "default": 10, "description": "Maximum results to return (1-50). Default 10. Each result includes title, authors, abstract, and metadata — keep low to limit response size.", "maximum": 50, "minimum": 1, "type": "integer" }, "query": { "description": "Search query. Field prefixes: ti: (title), au: (author — token-based; quote multi-token names like au:\"hinton g\" or pair with a topical clause to disambiguate common surnames), abs: (abstract), cat: (category — a leaf code matches exactly, a bare archive code such as cat:astro-ph matches its whole subtree), co: (comment), jr: (journal ref), all: (all fields). Boolean operators: AND, OR, ANDNOT. Examples: \"au:bengio AND ti:attention\", \"all:transformer AND cat:cs.CL\".", "maxLength": 1000, "minLength": 1, "pattern": "^[^\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F]*$", "type": "string" }, "sort_by": { "default": "relevance", "description": "Sort criterion. Use \"submitted\" for newest papers, \"relevance\" for best query matches.", "enum": [ "relevance", "submitted", "updated" ], "type": "string" }, "sort_order": { "default": "descending", "description": "Sort direction. \"descending\" returns newest/most relevant first.", "enum": [ "ascending", "descending" ], "type": "string" }, "start": { "default": 0, "description": "Pagination offset (0-10000). Use with max_results to page through results. E.g., start=10 with max_results=10 returns results 11-20. Matches beyond offset 10000 + max_results are unreachable by paging — carve the search into submitted_from/submitted_to windows and page within each.", "maximum": 10000, "minimum": 0, "type": "integer" }, "submitted_from": { "description": "Earliest submission date to include, inclusive, as a UTC YYYY-MM-DD date. Omit for no lower bound.", "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$", "type": "string" }, "submitted_to": { "description": "Latest submission date to include, inclusive, as a UTC YYYY-MM-DD date. Omit for no upper bound. Both bounds are inclusive, so consecutive windows (\"2024-01-01\"..\"2024-01-15\" then \"2024-01-16\"..\"2024-01-31\") cover the matches with no gap; a paper submitted at exactly the midnight seam between two windows appears in both, so de-duplicate collected results by paper id. That is the way to reach matches past the start ceiling: split the date range, then page within each window.", "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "arxiv_search", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ { "not": { "required": [ "error" ] }, "required": [ "papers", "effectiveQuery", "totalFound", "pageStart" ] }, { "required": [ "error" ] } ], "properties": { "cap": { "description": "The max_results limit applied to this page.", "type": "number" }, "effectiveQuery": { "description": "The query as actually searched, carrying every filter applied — the category subtree and submitted-date window folded into arXiv syntax alongside the supplied terms. Replaying it as `query` with no other filters reproduces this exact result set.", "type": "string" }, "error": { "additionalProperties": {}, "description": "Present when the call failed. Absent on success.", "properties": { "code": { "description": "JSON-RPC error code for this failure.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "data": { "additionalProperties": {}, "properties": { "reason": { "description": "Machine-readable failure mode. Declared by this tool: `unknown_category`: Provided category code is not part of the arXiv taxonomy. `rate_limited`: arXiv has throttled requests (HTTP 429 or \"Rate exceeded.\" body). `invalid_request`: arXiv rejected the request (HTTP 4xx other than 429), typically malformed query syntax. `unsupported_query_syntax`: Query translates to a mirror FTS5 expression the search engine cannot parse, typically two operands juxtaposed across a parenthesized group without an explicit operator. `invalid_date_range`: submitted_from or submitted_to is not a real UTC calendar date, or the window starts after it ends. Other values are possible when a failure originates below the handler.", "examples": [ "unknown_category", "rate_limited", "invalid_request", "unsupported_query_syntax", "invalid_date_range" ], "type": "string" }, "recovery": { "additionalProperties": {}, "description": "Actionable next step for the caller.", "properties": { "hint": { "type": "string" } }, "required": [ "hint" ], "type": "object" }, "retryable": { "description": "Whether retrying may succeed.", "type": "boolean" } }, "type": "object" }, "message": { "description": "Human-readable description of what went wrong.", "type": "string" } }, "required": [ "code", "message" ], "type": "object" }, "notice": { "description": "Recovery guidance when results are empty or paging overshot. Absent on successful pages.", "type": "string" }, "pageStart": { "description": "Pagination offset of this result page.", "type": "number" }, "papers": { "description": "Matching papers with full metadata.", "items": { "additionalProperties": false, "description": "arXiv paper metadata — identifier, title, authors, abstract, categories, and links.", "properties": { "abstract": { "description": "Full abstract text.", "type": "string" }, "abstract_url": { "description": "arXiv abstract page URL.", "type": "string" }, "authors": { "description": "Author names.", "items": { "type": "string" }, "type": "array" }, "categories": { "description": "All arXiv categories assigned to this paper.", "items": { "type": "string" }, "type": "array" }, "comment": { "description": "Author comment (e.g., page count, conference).", "type": "string" }, "doi": { "description": "DOI if available.", "type": "string" }, "id": { "description": "arXiv paper ID (e.g., \"2401.12345v1\").", "type": "string" }, "journal_ref": { "description": "Journal reference if published.", "type": "string" }, "pdf_url": { "description": "Direct PDF download URL.", "type": "string" }, "primary_category": { "description": "Primary arXiv category (e.g., \"cs.CL\").", "type": "string" }, "published": { "description": "Original submission date (ISO 8601).", "type": "string" }, "title": { "description": "Paper title.", "type": "string" }, "updated": { "description": "Last update date (ISO 8601).", "type": "string" } }, "required": [ "id", "title", "authors", "abstract", "primary_category", "categories", "published", "updated", "pdf_url", "abstract_url" ], "type": "object" }, "type": "array" }, "shown": { "description": "Papers returned on this page.", "type": "number" }, "totalFound": { "description": "Total matching papers reported by arXiv (before pagination).", "type": "number" }, "truncated": { "description": "True when more matching papers exist beyond this page (totalFound > start + shown).", "type": "boolean" } }, "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:da813c738a156e9a2e0f056f05fa8536891316f2374c5f051d77f75bda67e02e | sha256sum