Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,534Letters: 13Defects: 1,322counted 3 min ago
teppi

Server definition

Hash
sha256:333a0fdfd221734e9323ff664d772f325f8e9d0e5e3ccd4bd0901d999184f63c
What it is
What a remote MCP server returned when asked what it offers: 7 tools

The blob, as servednamed by its sha256

{ "instructions": "mkna-ai is a corpus of the documents Ecuadorian public institutions publish: laws, codes, regulations, executive decrees, ministerial agreements and resolutions, ordinances, court rulings, the Registro Oficial, reports and institutional communications, from 200+ publishers (the `catalog` tool lists them). The text is Spanish, as published, and held page by page, so every passage can be quoted with its document and page. Coverage grows every day and is not complete: `catalog` says, per publisher, how many documents have text. For company counts, rankings, revenue, size and employees use `companies` and cite its `source`.\n\nHow to research: `search` broadly first, in Spanish (the corpus is Spanish: \"inversión extranjera minería\", not \"foreign investment mining\"), and read the `facets` to see which publishers, kinds and years hold the answer; then search again narrowed with `family`, `kind`, `category`, `sector`, `topic` or dates. `fetch` the two or three best documents (a passage id shows it in context; a document id gives the text with [p. N] markers); `read` pages or an article (`article='15'`) of a long one. Use `citations` to find the law a document applies or amends (direction 'out') and the later instruments and rulings that amend, repeal or cite it (direction 'in'). `documents` lists the newest instruments of a publisher or sector. For Constitutional Court rulings, `abstract` is the Court-written Resumen when present; use it to choose which ruling to open. Quote verbatim with the title, the page and the url, and say plainly what you searched for and did not find.\n\nWhat never to claim: this corpus does not assert that an instrument is \"in force\" (vigente). Amendments and repeals that documents in the corpus make expressly are shown by `citations`, each with its quote, page and document; report them as that (\"the Decreto X of 2024 amends article 8, p. 3\"), and say that absence of a reform here is not proof that none exists. Text is verbatim from the publisher's file; press articles are never returned beyond a title, a short snippet and their URL.", "tools": [ { "description": "What exists: every publisher (family) with how many documents it has and how many have text.\n\nCall it to learn the valid `family` keys and the kinds each publisher prints before filtering\n`search` or `documents`, or to judge whether a missing answer means a gap in the corpus.\n`sector` narrows to one group of families (e.g. 'ley', 'ejecutivo', 'control', 'local').\n\nReturns `sectors`, each with its `families`: `key`, `label`, `documents` (listed), `with_text`\nand `newest` (latest publication date); with `sector`, also `publisher`, `stored` (file held),\n`classified` and `kinds` (the kinds it prints most, with counts). Families with nothing yet\nare named in `without_documents`. Also, over the classified documents: `instrument_kinds`, `sectors_classified`\nand `topics`, the values `kind`, `sector` and `topic` take.\n", "inputSchema": { "properties": { "sector": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sector" } }, "title": "catalogArguments", "type": "object" }, "name": "catalog", "outputSchema": null }, { "description": "What a document cites, amends or repeals, or which documents cite, amend or repeal it.\n\n`direction`: 'out' (default) for the instruments this document refers to - the law it applies,\nthe articles it amends, what it repeals, the rulings it cites; 'in' for the documents in the\ncorpus that refer to this one, newest first - later reforms, repeals, regulations, rulings.\n`relation` narrows to one of cites, amends, repeals, regulates, replaces, applies. `limit` <= 100.\n\nReturns `citations`, each edge with the verbatim `quote` and the `page` it is on. 'out' edges name the target as\nwritten (`target_label`, `target_article`) and its `target_document_id` when the target is in\nthe corpus (then `fetch` or `read` it); 'in' edges carry the citing document's id, title,\ndate and url. An amendment found here is evidence of a change with its source, not a\nstatement of what is in force.\n", "inputSchema": { "properties": { "direction": { "default": "out", "title": "Direction", "type": "string" }, "document_id": { "title": "Document Id", "type": "string" }, "limit": { "default": 50, "title": "Limit", "type": "integer" }, "relation": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Relation" } }, "required": [ "document_id" ], "title": "citationsArguments", "type": "object" }, "name": "citations", "outputSchema": null }, { "description": "Count, filter and rank SCVS company financial statements; use this for company numbers.\n\nAll filters are optional. Amounts are USD, employees is a count. `ciiu` accepts a code prefix\n('A0119') or a Spanish sector word ('flores'); word matches report the matched codes. CIIU\ndescribes activity, not export status. `name`\nis an accent-insensitive substring. `history` with `ruc` or a specific `name` shows every\nmatched company's years. The default year is the latest with at least 90% of the preceding\nyear's filers. Name, RUC, province and CIIU are from the current directory, not historical\nversions of the ranking.\n\nReturns exact `total`, `sum_revenue`, selected `year` and reason, rows of financial measures,\n`filers_by_year`, the SCVS filing `universe`, and `source` with document, URL, retrieval time\nand each row's CSV locator. Cite `source` and say which year and universe the count covers.\n", "inputSchema": { "properties": { "assets_min": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Assets Min" }, "ciiu": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Ciiu" }, "employees_max": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Employees Max" }, "employees_min": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Employees Min" }, "history": { "default": false, "title": "History", "type": "boolean" }, "limit": { "default": 20, "title": "Limit", "type": "integer" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Name" }, "offset": { "default": 0, "title": "Offset", "type": "integer" }, "province": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Province" }, "revenue_max": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Revenue Max" }, "revenue_min": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Revenue Min" }, "ruc": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Ruc" }, "sort": { "default": "revenue", "title": "Sort", "type": "string" }, "year": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Year" } }, "title": "companiesArguments", "type": "object" }, "name": "companies", "outputSchema": null }, { "description": "List documents newest first, without a query: \"the latest resolutions of the SRI\", \"what\ndid the Registro Oficial publish in March 2024\", \"recent ordinances on mining\".\n\nFilters as in `search`, each optional, one value or several comma-separated: `family`,\n`kind`, `category` (normativa | comunicacion | otros), `sector`, `topic`, `published_from`,\n`published_to`. 20 documents a page; pass the answer's `cursor` to get the next page.\n\nReturns `documents`: `document_id`, `title`, `instrument`, `kind`, `family`, `publisher`,\n`published`, `url`, `pages` when its text is held (`text: false` when it is not yet), and\nits classification (`sectors`, `topics`, `nature`) when it has one. Court rulings carry\ntheir Court-written `abstract` when present. Next: `fetch` one.\n", "inputSchema": { "properties": { "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Cursor" }, "family": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Family" }, "kind": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Kind" }, "published_from": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Published From" }, "published_to": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Published To" }, "sector": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sector" }, "topic": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Topic" } }, "title": "documentsArguments", "type": "object" }, "name": "documents", "outputSchema": null }, { "description": "Read one document, or one passage in its context, by the id `search`, `documents` or `citations` gave.\n\nA passage id (the `id` of a search result) returns the document's card and that passage with\nthe one before and after it. A document id (`document_id`) returns the document's text,\nverbatim, with a [p. N] marker before each page, up to 60,000 characters; beyond that the answer\nsays `truncated: true` and `next` names the `read` call for the following pages.\n\nReturns `id`, `title`, `text`, `url` (the publisher's address: cite it) and `metadata` (the\ncard: instrument, kind, publisher, published date, pages, classification, Court-written\n`abstract` for rulings when present, and `cited_by`:\nhow many documents in the corpus amend, repeal or cite this one). Next: `read` for more\npages or one article, `citations` for what it applies and what changed it.\n", "inputSchema": { "properties": { "id": { "title": "Id", "type": "string" } }, "required": [ "id" ], "title": "fetchArguments", "type": "object" }, "name": "fetch", "outputSchema": null }, { "description": "Read part of a long document: a range of pages, or one article.\n\nPass `document_id` and either `page_from` (and optionally `page_to`), as `fetch`'s `next`\nsuggests, or `article` ('15', 'Art. 15', 'primero', 'único') for that article's full text,\nhowever many pages it spans. `max_chars` is at most 40,000 (the default).\n\nReturns the text verbatim with a [p. N] marker before each page, `path` (where the window\nstarts in the document's structure: título, capítulo, artículo), `url`, and, when the window\ndid not fit, `truncated: true` with `next` for the following call. To find a phrase in a long\ndocument instead of paging through it, use `search` with its `document_id`.\n", "inputSchema": { "properties": { "article": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Article" }, "document_id": { "title": "Document Id", "type": "string" }, "max_chars": { "default": 40000, "title": "Max Chars", "type": "integer" }, "page_from": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Page From" }, "page_to": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Page To" } }, "required": [ "document_id" ], "title": "read_windowArguments", "type": "object" }, "name": "read", "outputSchema": null }, { "description": "Find passages in every document Ecuadorian public institutions publish. Start research here.\n\nFor company counts, rankings, revenue, size or employees call `companies` and cite its `source`.\n\n`query`: words or a question, best in Spanish, as the documents are (\"inversión extranjera en\nminería\", \"Decreto Ejecutivo 489\", \"Art. 15 Ley de Minería\"); English works less well. Filters,\neach one value or several comma-separated, all optional: `family` (a publisher key from\n`catalog`, e.g. 'registro_oficial'), `kind` (the kind the publisher printed, e.g. 'resolución',\nor a normalised one: ley, codigo, reglamento, decreto, resolucion, acuerdo, ordenanza,\nsentencia...), `category` (normativa | comunicacion | otros), `sector` (a sector of `catalog`\nsuch as 'ley' or 'local', or an economic one such as 'mineria'), `topic` (e.g.\n'inversion_extranjera', 'tributario'), `published_from` / `published_to` (ISO dates or years),\n`document_id` (search inside one document), `sort` (relevance | newest), `limit` (<= 20, default 8).\n\nReturns `results`: each a passage, verbatim, with `id` (the passage id, for `fetch`),\n`document_id`, `title`, `instrument`, `publisher`, `family`, `kind`, `published`, `url`, `page`,\n`heading` and `text` (<= 1,200 chars); Court rulings also have `abstract` when their\nCourt-written Resumen is present. `facets` counts the documents of the wider candidate set\nby family, kind and year: search again with one of them as a filter to narrow. Next: `fetch`\nthe two or three best results; quote with title, page and url.\n", "inputSchema": { "properties": { "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "document_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Document Id" }, "family": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Family" }, "kind": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Kind" }, "limit": { "default": 8, "title": "Limit", "type": "integer" }, "published_from": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Published From" }, "published_to": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Published To" }, "query": { "title": "Query", "type": "string" }, "sector": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sector" }, "sort": { "default": "relevance", "title": "Sort", "type": "string" }, "topic": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Topic" } }, "required": [ "query" ], "title": "searchArguments", "type": "object" }, "name": "search", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:333a0fdfd221734e9323ff664d772f325f8e9d0e5e3ccd4bd0901d999184f63c | sha256sum