{
  "type": "skill",
  "id": "indexagentica-lookup",
  "title": "Index Agentica lookup",
  "summary": "Query the Index Agentica directory (llms.txt, JSON API, per-entry JSON and markdown) to discover agent tools, MCP servers and APIs, and to propose new entries.",
  "author": "Agentica Author",
  "tags": [
    "directory",
    "discovery",
    "llms-txt",
    "json-api"
  ],
  "published": "2026-10-02",
  "last_verified": "2026-10-02",
  "entries": [
    "llms-txt",
    "model-context-protocol",
    "openapi"
  ],
  "links": {
    "html": "https://indexagentica.com/skills/indexagentica-lookup/",
    "markdown": "https://indexagentica.com/skills/indexagentica-lookup.md",
    "json": "https://indexagentica.com/api/longform/skills/indexagentica-lookup.json",
    "skill_md": "https://indexagentica.com/skills/indexagentica-lookup/SKILL.md",
    "zip": "https://indexagentica.com/skills/indexagentica-lookup.zip",
    "source": "https://github.com/Drudley/indexagentica/blob/main/content-long/skills/indexagentica-lookup/SKILL.md"
  },
  "status": "published",
  "skill": {
    "name": "indexagentica-lookup",
    "description": "Search the Index Agentica directory of agent tools, MCP servers, APIs, protocols, skills, harnesses, sandboxes and payment rails through its static JSON API, llms.txt and per-entry markdown. Use when you need to find, shortlist or compare resources for building or extending an AI agent, look up a tool's MCP endpoint, docs or auth method, or suggest a missing entry.",
    "license": "MIT",
    "compatibility": "Needs HTTPS access to indexagentica.com. curl and jq are optional but make filtering easy. No auth or API key.",
    "version": "1.0",
    "files": [
      {
        "path": "SKILL.md",
        "url": "https://indexagentica.com/skills/indexagentica-lookup/SKILL.md"
      }
    ],
    "skill_md": "https://indexagentica.com/skills/indexagentica-lookup/SKILL.md",
    "zip": "https://indexagentica.com/skills/indexagentica-lookup.zip"
  },
  "entries_detail": [
    {
      "id": "llms-txt",
      "name": "llms.txt",
      "summary": "Proposal to standardize a /llms.txt Markdown file that gives LLMs and agents a concise guide to a website's content.",
      "url": "https://indexagentica.com/entries/llms-txt/",
      "json": "https://indexagentica.com/api/entries/llms-txt.json"
    },
    {
      "id": "model-context-protocol",
      "name": "Model Context Protocol (MCP)",
      "summary": "Open protocol that standardizes how AI applications connect to external tools, data sources and prompts via MCP servers.",
      "url": "https://indexagentica.com/entries/model-context-protocol/",
      "json": "https://indexagentica.com/api/entries/model-context-protocol.json"
    },
    {
      "id": "openapi",
      "name": "OpenAPI Specification",
      "summary": "Language-agnostic standard for describing HTTP APIs, widely used to generate agent tools from API definitions.",
      "url": "https://indexagentica.com/entries/openapi/",
      "json": "https://indexagentica.com/api/entries/openapi.json"
    }
  ],
  "related": [
    {
      "type": "guide",
      "id": "connect-an-agent-to-a-remote-mcp-server",
      "title": "Connect an agent to a remote MCP server",
      "url": "https://indexagentica.com/guides/connect-an-agent-to-a-remote-mcp-server/",
      "json": "https://indexagentica.com/api/longform/guides/connect-an-agent-to-a-remote-mcp-server.json"
    },
    {
      "type": "skill",
      "id": "connect-remote-mcp",
      "title": "Connect a remote MCP server",
      "url": "https://indexagentica.com/skills/connect-remote-mcp/",
      "json": "https://indexagentica.com/api/longform/skills/connect-remote-mcp.json"
    }
  ],
  "sources": [
    {
      "url": "https://indexagentica.com/agents/"
    },
    {
      "url": "https://indexagentica.com/openapi.json"
    },
    {
      "url": "https://indexagentica.com/api/index.json"
    },
    {
      "url": "https://indexagentica.com/llms.txt"
    },
    {
      "url": "https://indexagentica.com/contribute.json"
    },
    {
      "url": "https://indexagentica.com/schema/entry.schema.json"
    }
  ],
  "front_matter": {
    "name": "indexagentica-lookup",
    "description": "Search the Index Agentica directory of agent tools, MCP servers, APIs, protocols, skills, harnesses, sandboxes and payment rails through its static JSON API, llms.txt and per-entry markdown. Use when you need to find, shortlist or compare resources for building or extending an AI agent, look up a tool's MCP endpoint, docs or auth method, or suggest a missing entry.",
    "license": "MIT",
    "compatibility": "Needs HTTPS access to indexagentica.com. curl and jq are optional but make filtering easy. No auth or API key.",
    "metadata": {
      "title": "Index Agentica lookup",
      "summary": "Query the Index Agentica directory (llms.txt, JSON API, per-entry JSON and markdown) to discover agent tools, MCP servers and APIs, and to propose new entries.",
      "author": "Agentica Author",
      "version": "1.0",
      "last_verified": "2026-10-02",
      "published": "2026-10-02",
      "tags": "directory, discovery, llms-txt, json-api",
      "entries": "llms-txt, model-context-protocol, openapi",
      "related": "connect-an-agent-to-a-remote-mcp-server, connect-remote-mcp",
      "sources": "https://indexagentica.com/agents/ https://indexagentica.com/openapi.json https://indexagentica.com/api/index.json https://indexagentica.com/llms.txt https://indexagentica.com/contribute.json https://indexagentica.com/schema/entry.schema.json"
    }
  },
  "markdown": "\n# Index Agentica lookup\n\nIndex Agentica (https://indexagentica.com) is a static, agent-first directory with no auth, no JavaScript and open CORS. Crawling is explicitly allowed. Every entry is one JSON object validated against https://indexagentica.com/schema/entry.schema.json.\n\n## Pick the right endpoint\n\n| Need | Fetch | Size, notes |\n|---|---|---|\n| Skim everything cheaply | https://indexagentica.com/llms.txt | About 50 KB of markdown: one line per entry, grouped by category |\n| Everything in full, for context | https://indexagentica.com/llms-full.txt | About 220 KB, so only load it when you need it |\n| Structured search | https://indexagentica.com/api/index.json | About 340 KB JSON: `counts`, `categories[]`, `entries[]` |\n| One category | `https://indexagentica.com/api/<category>.json` | Same shape, filtered. Has `category`, `count`, `entries[]` |\n| Category list | https://indexagentica.com/api/categories.json | Slugs, names, counts |\n| One entry | `https://indexagentica.com/api/entries/<id>.json` or `https://indexagentica.com/entries/<id>.md` | The `.md` version is the most compact for reading |\n| API description | https://indexagentica.com/openapi.json | OpenAPI 3.1 |\n\nCategory slugs: `skills`, `harnesses`, `mcp-servers`, `tools`, `protocols`, `apis`, `information`, `finance-payments`, `directories`, `infrastructure` (hosting and sandboxes), `evals-observability`.\n\nResponses are served with `cache-control: max-age=600` and an `ETag`. Cache them, and send `If-None-Match` when you refetch.\n\n## Entry fields you will use\n\n`id`, `name`, `category`, `summary` (one neutral line), `description` (markdown), `url`, `repo`, `docs`, `tags[]`, `license`, `pricing` (`free` / `freemium` / `paid` / `open-source` / `unknown`), `status` (`active` / `beta` / `deprecated` / `unknown`), `agent_access` (`llms_txt`, `openapi`, `mcp_endpoint`, `auth`, `notes`), `related[]` (other entry ids), `sources[]` (the URLs the facts were checked against), `last_verified`, and `links` (`html`, `markdown`, `json`). Optional fields are omitted when unverified. A missing field means unknown, not \"no\".\n\n## Recipes\n\nKeyword search over id, name, summary and tags:\n\n```bash\ncurl -s https://indexagentica.com/api/index.json | jq -r --arg q \"sandbox\" '\n  .entries[] | select((.id+\" \"+.name+\" \"+.summary+\" \"+((.tags//[])|join(\" \"))) | ascii_downcase | contains($q))\n  | \"\\(.id)\\t\\(.category)\\t\\(.url)\"'\n```\n\nEverything with a given tag:\n\n```bash\ncurl -s https://indexagentica.com/api/index.json | jq -r '.entries[] | select((.tags//[]) | index(\"x402\")) | \"\\(.id)\\t\\(.summary)\"'\n```\n\nRemote MCP servers and their auth method:\n\n```bash\ncurl -s https://indexagentica.com/api/index.json | jq -r '.entries[] | select(.agent_access.mcp_endpoint) | \"\\(.id)\\t\\(.agent_access.mcp_endpoint)\\t\\(.agent_access.auth // \"unknown\")\"'\n```\n\nRead one entry, then follow its `related` ids:\n\n```bash\ncurl -s https://indexagentica.com/entries/e2b.md\ncurl -s https://indexagentica.com/api/entries/e2b.json | jq -r '.related[]?'\n```\n\nWithout a shell, fetch `llms.txt`, find candidate ids in the relevant `## <Category>` section, then fetch `/entries/<id>.md` for each.\n\n## How to use results well\n\n- Shortlist from `summary`, then confirm against the entry's `docs` or `sources` before you recommend anything. The directory is a starting point, not the final authority. Check `last_verified`.\n- Prefer `status: active`. Flag `beta` and `deprecated` entries.\n- When the user wants something an agent can call directly, look at `agent_access` (MCP endpoint, OpenAPI, llms.txt, auth).\n- Cite entries by their `links.html` URL, `https://indexagentica.com/entries/<id>/`.\n\n## MCP server (when deployed)\n\nA read-only remote MCP server with `search(query, category?, tags?, limit?)`, `get_entry(id)` and `list_categories()` is planned at `https://mcp.indexagentica.com/mcp` (Streamable HTTP, no auth, about 120 requests per minute per IP). As of 2026-10-02 it is **not live**. Check `https://mcp.indexagentica.com/health` first and use the static API above if it doesn't respond.\n\n## Suggest a missing entry\n\nRead https://indexagentica.com/contribute.json for the rules and template. There are two paths, both merged by a human:\n\n1. A pull request adding `content/<category>/<id>.json` to https://github.com/Drudley/indexagentica. Run `node scripts/validate.mjs` first.\n2. A \"New entry\" issue (title `[New entry]: <name>`), using the issue body template in `contribute.json`.\n\nSummaries must be neutral (10-200 characters). List your verification URLs in `sources`, and say that you are an agent and who you act for. Only open an issue or PR when your user has asked you to.\n",
  "raw": "---\nname: indexagentica-lookup\ndescription: Search the Index Agentica directory of agent tools, MCP servers, APIs, protocols, skills, harnesses, sandboxes and payment rails through its static JSON API, llms.txt and per-entry markdown. Use when you need to find, shortlist or compare resources for building or extending an AI agent, look up a tool's MCP endpoint, docs or auth method, or suggest a missing entry.\nlicense: MIT\ncompatibility: Needs HTTPS access to indexagentica.com. curl and jq are optional but make filtering easy. No auth or API key.\nmetadata:\n  title: Index Agentica lookup\n  summary: Query the Index Agentica directory (llms.txt, JSON API, per-entry JSON and markdown) to discover agent tools, MCP servers and APIs, and to propose new entries.\n  author: Agentica Author\n  version: \"1.0\"\n  last_verified: 2026-10-02\n  published: 2026-10-02\n  tags: directory, discovery, llms-txt, json-api\n  entries: llms-txt, model-context-protocol, openapi\n  related: connect-an-agent-to-a-remote-mcp-server, connect-remote-mcp\n  sources: https://indexagentica.com/agents/ https://indexagentica.com/openapi.json https://indexagentica.com/api/index.json https://indexagentica.com/llms.txt https://indexagentica.com/contribute.json https://indexagentica.com/schema/entry.schema.json\n---\n\n# Index Agentica lookup\n\nIndex Agentica (https://indexagentica.com) is a static, agent-first directory with no auth, no JavaScript and open CORS. Crawling is explicitly allowed. Every entry is one JSON object validated against https://indexagentica.com/schema/entry.schema.json.\n\n## Pick the right endpoint\n\n| Need | Fetch | Size, notes |\n|---|---|---|\n| Skim everything cheaply | https://indexagentica.com/llms.txt | About 50 KB of markdown: one line per entry, grouped by category |\n| Everything in full, for context | https://indexagentica.com/llms-full.txt | About 220 KB, so only load it when you need it |\n| Structured search | https://indexagentica.com/api/index.json | About 340 KB JSON: `counts`, `categories[]`, `entries[]` |\n| One category | `https://indexagentica.com/api/<category>.json` | Same shape, filtered. Has `category`, `count`, `entries[]` |\n| Category list | https://indexagentica.com/api/categories.json | Slugs, names, counts |\n| One entry | `https://indexagentica.com/api/entries/<id>.json` or `https://indexagentica.com/entries/<id>.md` | The `.md` version is the most compact for reading |\n| API description | https://indexagentica.com/openapi.json | OpenAPI 3.1 |\n\nCategory slugs: `skills`, `harnesses`, `mcp-servers`, `tools`, `protocols`, `apis`, `information`, `finance-payments`, `directories`, `infrastructure` (hosting and sandboxes), `evals-observability`.\n\nResponses are served with `cache-control: max-age=600` and an `ETag`. Cache them, and send `If-None-Match` when you refetch.\n\n## Entry fields you will use\n\n`id`, `name`, `category`, `summary` (one neutral line), `description` (markdown), `url`, `repo`, `docs`, `tags[]`, `license`, `pricing` (`free` / `freemium` / `paid` / `open-source` / `unknown`), `status` (`active` / `beta` / `deprecated` / `unknown`), `agent_access` (`llms_txt`, `openapi`, `mcp_endpoint`, `auth`, `notes`), `related[]` (other entry ids), `sources[]` (the URLs the facts were checked against), `last_verified`, and `links` (`html`, `markdown`, `json`). Optional fields are omitted when unverified. A missing field means unknown, not \"no\".\n\n## Recipes\n\nKeyword search over id, name, summary and tags:\n\n```bash\ncurl -s https://indexagentica.com/api/index.json | jq -r --arg q \"sandbox\" '\n  .entries[] | select((.id+\" \"+.name+\" \"+.summary+\" \"+((.tags//[])|join(\" \"))) | ascii_downcase | contains($q))\n  | \"\\(.id)\\t\\(.category)\\t\\(.url)\"'\n```\n\nEverything with a given tag:\n\n```bash\ncurl -s https://indexagentica.com/api/index.json | jq -r '.entries[] | select((.tags//[]) | index(\"x402\")) | \"\\(.id)\\t\\(.summary)\"'\n```\n\nRemote MCP servers and their auth method:\n\n```bash\ncurl -s https://indexagentica.com/api/index.json | jq -r '.entries[] | select(.agent_access.mcp_endpoint) | \"\\(.id)\\t\\(.agent_access.mcp_endpoint)\\t\\(.agent_access.auth // \"unknown\")\"'\n```\n\nRead one entry, then follow its `related` ids:\n\n```bash\ncurl -s https://indexagentica.com/entries/e2b.md\ncurl -s https://indexagentica.com/api/entries/e2b.json | jq -r '.related[]?'\n```\n\nWithout a shell, fetch `llms.txt`, find candidate ids in the relevant `## <Category>` section, then fetch `/entries/<id>.md` for each.\n\n## How to use results well\n\n- Shortlist from `summary`, then confirm against the entry's `docs` or `sources` before you recommend anything. The directory is a starting point, not the final authority. Check `last_verified`.\n- Prefer `status: active`. Flag `beta` and `deprecated` entries.\n- When the user wants something an agent can call directly, look at `agent_access` (MCP endpoint, OpenAPI, llms.txt, auth).\n- Cite entries by their `links.html` URL, `https://indexagentica.com/entries/<id>/`.\n\n## MCP server (when deployed)\n\nA read-only remote MCP server with `search(query, category?, tags?, limit?)`, `get_entry(id)` and `list_categories()` is planned at `https://mcp.indexagentica.com/mcp` (Streamable HTTP, no auth, about 120 requests per minute per IP). As of 2026-10-02 it is **not live**. Check `https://mcp.indexagentica.com/health` first and use the static API above if it doesn't respond.\n\n## Suggest a missing entry\n\nRead https://indexagentica.com/contribute.json for the rules and template. There are two paths, both merged by a human:\n\n1. A pull request adding `content/<category>/<id>.json` to https://github.com/Drudley/indexagentica. Run `node scripts/validate.mjs` first.\n2. A \"New entry\" issue (title `[New entry]: <name>`), using the issue body template in `contribute.json`.\n\nSummaries must be neutral (10-200 characters). List your verification URLs in `sources`, and say that you are an agent and who you act for. Only open an issue or PR when your user has asked you to.\n",
  "html": "<h3>Index Agentica lookup</h3>\n<p>Index Agentica (https://indexagentica.com) is a static, agent-first directory with no auth, no JavaScript and open CORS. Crawling is explicitly allowed. Every entry is one JSON object validated against https://indexagentica.com/schema/entry.schema.json.</p>\n<h4>Pick the right endpoint</h4>\n<table><thead><tr><th scope=\"col\">Need</th><th scope=\"col\">Fetch</th><th scope=\"col\">Size, notes</th></tr></thead><tbody><tr><td>Skim everything cheaply</td><td>https://indexagentica.com/llms.txt</td><td>About 50 KB of markdown: one line per entry, grouped by category</td></tr><tr><td>Everything in full, for context</td><td>https://indexagentica.com/llms-full.txt</td><td>About 220 KB, so only load it when you need it</td></tr><tr><td>Structured search</td><td>https://indexagentica.com/api/index.json</td><td>About 340 KB JSON: <code>counts</code>, <code>categories[]</code>, <code>entries[]</code></td></tr><tr><td>One category</td><td><code>https://indexagentica.com/api/&lt;category&gt;.json</code></td><td>Same shape, filtered. Has <code>category</code>, <code>count</code>, <code>entries[]</code></td></tr><tr><td>Category list</td><td>https://indexagentica.com/api/categories.json</td><td>Slugs, names, counts</td></tr><tr><td>One entry</td><td><code>https://indexagentica.com/api/entries/&lt;id&gt;.json</code> or <code>https://indexagentica.com/entries/&lt;id&gt;.md</code></td><td>The <code>.md</code> version is the most compact for reading</td></tr><tr><td>API description</td><td>https://indexagentica.com/openapi.json</td><td>OpenAPI 3.1</td></tr></tbody></table>\n<p>Category slugs: <code>skills</code>, <code>harnesses</code>, <code>mcp-servers</code>, <code>tools</code>, <code>protocols</code>, <code>apis</code>, <code>information</code>, <code>finance-payments</code>, <code>directories</code>, <code>infrastructure</code> (hosting and sandboxes), <code>evals-observability</code>.</p>\n<p>Responses are served with <code>cache-control: max-age=600</code> and an <code>ETag</code>. Cache them, and send <code>If-None-Match</code> when you refetch.</p>\n<h4>Entry fields you will use</h4>\n<p><code>id</code>, <code>name</code>, <code>category</code>, <code>summary</code> (one neutral line), <code>description</code> (markdown), <code>url</code>, <code>repo</code>, <code>docs</code>, <code>tags[]</code>, <code>license</code>, <code>pricing</code> (<code>free</code> / <code>freemium</code> / <code>paid</code> / <code>open-source</code> / <code>unknown</code>), <code>status</code> (<code>active</code> / <code>beta</code> / <code>deprecated</code> / <code>unknown</code>), <code>agent_access</code> (<code>llms_txt</code>, <code>openapi</code>, <code>mcp_endpoint</code>, <code>auth</code>, <code>notes</code>), <code>related[]</code> (other entry ids), <code>sources[]</code> (the URLs the facts were checked against), <code>last_verified</code>, and <code>links</code> (<code>html</code>, <code>markdown</code>, <code>json</code>). Optional fields are omitted when unverified. A missing field means unknown, not &quot;no&quot;.</p>\n<h4>Recipes</h4>\n<p>Keyword search over id, name, summary and tags:</p>\n<pre><code class=\"language-bash\">curl -s https://indexagentica.com/api/index.json | jq -r --arg q &quot;sandbox&quot; &#39;\n  .entries[] | select((.id+&quot; &quot;+.name+&quot; &quot;+.summary+&quot; &quot;+((.tags//[])|join(&quot; &quot;))) | ascii_downcase | contains($q))\n  | &quot;\\(.id)\\t\\(.category)\\t\\(.url)&quot;&#39;</code></pre>\n<p>Everything with a given tag:</p>\n<pre><code class=\"language-bash\">curl -s https://indexagentica.com/api/index.json | jq -r &#39;.entries[] | select((.tags//[]) | index(&quot;x402&quot;)) | &quot;\\(.id)\\t\\(.summary)&quot;&#39;</code></pre>\n<p>Remote MCP servers and their auth method:</p>\n<pre><code class=\"language-bash\">curl -s https://indexagentica.com/api/index.json | jq -r &#39;.entries[] | select(.agent_access.mcp_endpoint) | &quot;\\(.id)\\t\\(.agent_access.mcp_endpoint)\\t\\(.agent_access.auth // &quot;unknown&quot;)&quot;&#39;</code></pre>\n<p>Read one entry, then follow its <code>related</code> ids:</p>\n<pre><code class=\"language-bash\">curl -s https://indexagentica.com/entries/e2b.md\ncurl -s https://indexagentica.com/api/entries/e2b.json | jq -r &#39;.related[]?&#39;</code></pre>\n<p>Without a shell, fetch <code>llms.txt</code>, find candidate ids in the relevant <code>## &lt;Category&gt;</code> section, then fetch <code>/entries/&lt;id&gt;.md</code> for each.</p>\n<h4>How to use results well</h4>\n<ul><li>Shortlist from <code>summary</code>, then confirm against the entry&#39;s <code>docs</code> or <code>sources</code> before you recommend anything. The directory is a starting point, not the final authority. Check <code>last_verified</code>.</li><li>Prefer <code>status: active</code>. Flag <code>beta</code> and <code>deprecated</code> entries.</li><li>When the user wants something an agent can call directly, look at <code>agent_access</code> (MCP endpoint, OpenAPI, llms.txt, auth).</li><li>Cite entries by their <code>links.html</code> URL, <code>https://indexagentica.com/entries/&lt;id&gt;/</code>.</li></ul>\n<h4>MCP server (when deployed)</h4>\n<p>A read-only remote MCP server with <code>search(query, category?, tags?, limit?)</code>, <code>get_entry(id)</code> and <code>list_categories()</code> is planned at <code>https://mcp.indexagentica.com/mcp</code> (Streamable HTTP, no auth, about 120 requests per minute per IP). As of 2026-10-02 it is <strong>not live</strong>. Check <code>https://mcp.indexagentica.com/health</code> first and use the static API above if it doesn&#39;t respond.</p>\n<h4>Suggest a missing entry</h4>\n<p>Read https://indexagentica.com/contribute.json for the rules and template. There are two paths, both merged by a human:</p>\n<ol><li>A pull request adding <code>content/&lt;category&gt;/&lt;id&gt;.json</code> to https://github.com/Drudley/indexagentica. Run <code>node scripts/validate.mjs</code> first.</li><li>A &quot;New entry&quot; issue (title <code>[New entry]: &lt;name&gt;</code>), using the issue body template in <code>contribute.json</code>.</li></ol>\n<p>Summaries must be neutral (10-200 characters). List your verification URLs in <code>sources</code>, and say that you are an agent and who you act for. Only open an issue or PR when your user has asked you to.</p>"
}
