Server definition
- Hash
- sha256:abcdd55e53cec3b75ea1de2149a689456280649f75a0d113acdb27a32ebc81fb
- What it is
- What a remote MCP server returned when asked what it offers: 5 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Get a single event by ID\n\n404s if the event doesn't exist, is unpublished, is beyond your tier's archive window, or was soft-deleted — never distinguishes which, to avoid leaking data existence beyond what the tier allows.\n\n### Responses:\n\n**200**: Successful Response (Success Response)\nContent-Type: application/json\n\n**Example Response:**\n```json\n{\n \"data\": {\n \"event_id\": \"Event Id\",\n \"schema_version\": \"Schema Version\",\n \"taxonomy_version\": \"Taxonomy Version\",\n \"primary_category\": \"Primary Category\",\n \"subcategory\": \"Subcategory\",\n \"categories\": [\n \"string\"\n ],\n \"type_confidence\": 1.0,\n \"headline\": \"Headline\",\n \"summary\": \"Summary\",\n \"reported_at\": \"2023-01-01T00:00:00Z\",\n \"orgs\": [\n \"string\"\n ],\n \"models\": [\n \"string\"\n ],\n \"source_url\": \"Source Url\",\n \"article_count\": 1\n },\n \"meta\": {\n \"request_id\": \"Request Id\",\n \"taxonomy_version\": \"Taxonomy Version\",\n \"tier\": \"ApiTier\"\n }\n}\n```",
"inputSchema": {
"properties": {
"event_id": {
"title": "event_id",
"type": "string"
}
},
"required": [
"event_id"
],
"title": "get_eventArguments",
"type": "object"
},
"name": "get_event",
"outputSchema": null
},
{
"description": "List events, newest first\n\nThe primary resource — one structured event per underlying story, already deduplicated from many source articles. Cursor-paginated (`next_cursor`/`has_more`), newest `reported_at` first. Free tier omits paid-only fields by omission (never null) and excludes paid-primary subcategories entirely; archive depth is 45 days on free, 365 on Pro.\n\n### Responses:\n\n**200**: Successful Response (Success Response)\nContent-Type: application/json\n\n**Example Response:**\n```json\n{\n \"data\": [\n {\n \"event_id\": \"Event Id\",\n \"schema_version\": \"Schema Version\",\n \"taxonomy_version\": \"Taxonomy Version\",\n \"primary_category\": \"Primary Category\",\n \"subcategory\": \"Subcategory\",\n \"categories\": [\n \"string\"\n ],\n \"type_confidence\": 1.0,\n \"headline\": \"Headline\",\n \"summary\": \"Summary\",\n \"reported_at\": \"2023-01-01T00:00:00Z\",\n \"orgs\": [\n \"string\"\n ],\n \"models\": [\n \"string\"\n ],\n \"source_url\": \"Source Url\",\n \"article_count\": 1\n }\n ],\n \"pagination\": {\n \"has_more\": true,\n \"count\": 1\n },\n \"meta\": {\n \"request_id\": \"Request Id\",\n \"taxonomy_version\": \"Taxonomy Version\",\n \"tier\": \"ApiTier\"\n }\n}\n```",
"inputSchema": {
"properties": {
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Exact primary_category id, e.g. MODEL_RELEASE",
"title": "category",
"type": "string"
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Opaque cursor from a previous response's next_cursor",
"title": "cursor",
"type": "string"
},
"limit": {
"default": 50,
"maximum": 100,
"minimum": 1,
"title": "limit",
"type": "integer"
},
"since": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"description": "Only events reported_at >= this ISO 8601 timestamp",
"title": "since",
"type": "string"
},
"subcategory": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Exact subcategory id, e.g. MODEL_RELEASE.NEW_MODEL_RELEASE",
"title": "subcategory",
"type": "string"
},
"until": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"description": "Only events reported_at <= this ISO 8601 timestamp",
"title": "until",
"type": "string"
}
},
"title": "list_eventsArguments",
"type": "object"
},
"name": "list_events",
"outputSchema": null
},
{
"description": "Request a free API key by email\n\nStep 1 of self-serve signup — no key required. Sends a one-time link to `email`; always returns 202 with the same accepted:true body whether or not that address already has a key (prevents account enumeration).\n\n**For agents helping a human get set up:** this endpoint is the only step you can call directly. The next step — opening the emailed link and clicking \"Reveal my key\" on `GET /v1/auth/verify` — **requires a real human click and cannot be automated or done on the human's behalf.** This is intentional: it's what stops email security scanners (e.g. Microsoft Safe Links) from silently consuming the link before the person ever sees it. Tell the human: check your email, open the link, click the button, then paste the key back here.\n\n**Not a pollable async job.** This 202 has no `Location`/`job_id` to poll — the next step is a human clicking an emailed link, not a machine checking a status endpoint.\n\n### Responses:\n\n**202**: Successful Response (Success Response)\nContent-Type: application/json\n\n**Example Response:**\n```json\n{\n \"accepted\": true,\n \"detail\": \"Detail\"\n}\n```",
"inputSchema": {
"properties": {
"email": {
"description": "Email to receive the magic link",
"format": "email",
"title": "email",
"type": "string"
}
},
"required": [
"email"
],
"title": "request_magic_linkArguments",
"type": "object"
},
"name": "request_magic_link",
"outputSchema": null
},
{
"description": "Semantic search over events (Pro+)\n\nNatural-language query embedded and ranked by cosine similarity against published events — not a keyword/text match. Each result is a normal event object plus `relevance_score` (0-1). Requires Pro tier or above; free-tier keys get 403 with an upgrade_url.\n\n### Responses:\n\n**200**: Successful Response (Success Response)\nContent-Type: application/json\n\n**Example Response:**\n```json\n{\n \"data\": [\n {\n \"event_id\": \"Event Id\",\n \"schema_version\": \"Schema Version\",\n \"taxonomy_version\": \"Taxonomy Version\",\n \"primary_category\": \"Primary Category\",\n \"subcategory\": \"Subcategory\",\n \"categories\": [\n \"string\"\n ],\n \"type_confidence\": 1.0,\n \"headline\": \"Headline\",\n \"summary\": \"Summary\",\n \"reported_at\": \"2023-01-01T00:00:00Z\",\n \"orgs\": [\n \"string\"\n ],\n \"models\": [\n \"string\"\n ],\n \"source_url\": \"Source Url\",\n \"article_count\": 1,\n \"relevance_score\": 1.0\n }\n ],\n \"pagination\": {\n \"has_more\": true,\n \"count\": 1\n },\n \"meta\": {\n \"request_id\": \"Request Id\",\n \"taxonomy_version\": \"Taxonomy Version\",\n \"tier\": \"ApiTier\"\n }\n}\n```",
"inputSchema": {
"properties": {
"limit": {
"default": 20,
"maximum": 100,
"minimum": 1,
"title": "limit",
"type": "integer"
},
"q": {
"description": "Natural-language search query",
"minLength": 1,
"title": "q",
"type": "string"
}
},
"required": [
"q"
],
"title": "searchArguments",
"type": "object"
},
"name": "search",
"outputSchema": null
},
{
"description": "Get Taxonomy\n\nPublic taxonomy — no API key required.\n\n### Responses:\n\n**200**: Successful Response (Success Response)\nContent-Type: application/json",
"inputSchema": {
"properties": {},
"title": "taxonomyArguments",
"type": "object"
},
"name": "taxonomy",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:abcdd55e53cec3b75ea1de2149a689456280649f75a0d113acdb27a32ebc81fb | sha256sum