{
  "type": "skill",
  "id": "pick-an-mcp-server",
  "title": "Pick an MCP server",
  "summary": "A repeatable shortlist-compare-probe workflow for selecting an MCP server from Index Agentica, with two scripts that pull candidates from the live REST API and test a remote endpoint's auth without credentials.",
  "author": "Agentica Author",
  "tags": [
    "mcp",
    "discovery",
    "mcp-servers",
    "selection",
    "oauth"
  ],
  "published": "2026-10-15",
  "last_verified": "2026-10-15",
  "entries": [
    "indexagentica-mcp",
    "model-context-protocol",
    "mcp-authorization",
    "official-mcp-registry",
    "mcp-inspector"
  ],
  "links": {
    "html": "https://indexagentica.com/skills/pick-an-mcp-server/",
    "markdown": "https://indexagentica.com/skills/pick-an-mcp-server.md",
    "json": "https://indexagentica.com/api/longform/skills/pick-an-mcp-server.json",
    "skill_md": "https://mcp.indexagentica.com/skills/pick-an-mcp-server/SKILL.md",
    "zip": "https://mcp.indexagentica.com/skills/pick-an-mcp-server.zip",
    "source": "https://github.com/Drudley/indexagentica/blob/main/content-long/skills/pick-an-mcp-server/SKILL.md"
  },
  "status": "published",
  "skill": {
    "name": "pick-an-mcp-server",
    "description": "Choose the right MCP server for a task by shortlisting candidates from the Index Agentica directory (live REST/MCP at mcp.indexagentica.com), comparing them on remote vs local, auth method, licence, maintainer and freshness, then probing the winner's endpoint before wiring it into the client. Use when a user asks for \"an MCP server for X\", when you need a capability (database, browser, payments, observability, docs) you don't have, or when choosing between several MCP servers.",
    "license": "MIT",
    "compatibility": "Needs HTTPS access to mcp.indexagentica.com (no auth, no API key) and the server you probe. The scripts need bash, curl and jq. An MCP client is optional.",
    "version": "1.0",
    "files": [
      {
        "path": "scripts/probe.sh",
        "url": "https://indexagentica.com/skills/pick-an-mcp-server/scripts/probe.sh"
      },
      {
        "path": "scripts/shortlist.sh",
        "url": "https://indexagentica.com/skills/pick-an-mcp-server/scripts/shortlist.sh"
      },
      {
        "path": "SKILL.md",
        "url": "https://indexagentica.com/skills/pick-an-mcp-server/SKILL.md"
      }
    ],
    "skill_md": "https://mcp.indexagentica.com/skills/pick-an-mcp-server/SKILL.md",
    "zip": "https://mcp.indexagentica.com/skills/pick-an-mcp-server.zip"
  },
  "entries_detail": [
    {
      "id": "indexagentica-mcp",
      "name": "Index Agentica MCP Server",
      "summary": "Remote, read-only MCP server for searching this directory (Index Agentica): search, get_entry, get_content and list_categories over Streamable HTTP, no auth.",
      "url": "https://indexagentica.com/entries/indexagentica-mcp/",
      "json": "https://indexagentica.com/api/entries/indexagentica-mcp.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": "mcp-authorization",
      "name": "MCP Authorization (OAuth 2.1 for MCP)",
      "summary": "The MCP specification's transport-level authorization flow for HTTP-based MCP servers, based on a subset of OAuth 2.1 and related RFCs.",
      "url": "https://indexagentica.com/entries/mcp-authorization/",
      "json": "https://indexagentica.com/api/entries/mcp-authorization.json"
    },
    {
      "id": "official-mcp-registry",
      "name": "Official MCP Registry",
      "summary": "Community-driven registry service from the MCP project listing published MCP servers, with a public REST API (like an app store for MCP servers).",
      "url": "https://indexagentica.com/entries/official-mcp-registry/",
      "json": "https://indexagentica.com/api/entries/official-mcp-registry.json"
    },
    {
      "id": "mcp-inspector",
      "name": "MCP Inspector",
      "summary": "Official interactive developer tool for testing and debugging MCP servers in the browser, on the command line or in the terminal.",
      "url": "https://indexagentica.com/entries/mcp-inspector/",
      "json": "https://indexagentica.com/api/entries/mcp-inspector.json"
    }
  ],
  "related": [
    {
      "type": "skill",
      "id": "indexagentica-lookup",
      "title": "Index Agentica lookup",
      "url": "https://indexagentica.com/skills/indexagentica-lookup/",
      "json": "https://indexagentica.com/api/longform/skills/indexagentica-lookup.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"
    },
    {
      "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": "guide",
      "id": "agent-auth-and-delegated-access",
      "title": "Agent auth and delegated access, step by step",
      "url": "https://indexagentica.com/guides/agent-auth-and-delegated-access/",
      "json": "https://indexagentica.com/api/longform/guides/agent-auth-and-delegated-access.json"
    },
    {
      "type": "guide",
      "id": "publish-an-mcp-server",
      "title": "Publish an MCP server so agents can find it",
      "url": "https://indexagentica.com/guides/publish-an-mcp-server/",
      "json": "https://indexagentica.com/api/longform/guides/publish-an-mcp-server.json"
    },
    {
      "type": "comparison",
      "id": "database-mcp-servers",
      "title": "Database MCP servers compared",
      "url": "https://indexagentica.com/compare/database-mcp-servers/",
      "json": "https://indexagentica.com/api/longform/compare/database-mcp-servers.json"
    },
    {
      "type": "guide",
      "id": "test-your-mcp-server",
      "title": "Test your MCP server with in-process tests and Inspector CI checks",
      "url": "https://indexagentica.com/guides/test-your-mcp-server/",
      "json": "https://indexagentica.com/api/longform/guides/test-your-mcp-server.json"
    },
    {
      "type": "comparison",
      "id": "mcp-gateways",
      "title": "MCP gateways compared",
      "url": "https://indexagentica.com/compare/mcp-gateways/",
      "json": "https://indexagentica.com/api/longform/compare/mcp-gateways.json"
    }
  ],
  "sources": [
    {
      "url": "https://mcp.indexagentica.com/openapi.json"
    },
    {
      "url": "https://mcp.indexagentica.com/.well-known/mcp/server-card.json"
    },
    {
      "url": "https://indexagentica.com/api/mcp-servers.json"
    },
    {
      "url": "https://indexagentica.com/schema/entry.schema.json"
    },
    {
      "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization"
    },
    {
      "url": "https://datatracker.ietf.org/doc/html/rfc9728"
    }
  ],
  "front_matter": {
    "name": "pick-an-mcp-server",
    "description": "Choose the right MCP server for a task by shortlisting candidates from the Index Agentica directory (live REST/MCP at mcp.indexagentica.com), comparing them on remote vs local, auth method, licence, maintainer and freshness, then probing the winner's endpoint before wiring it into the client. Use when a user asks for \"an MCP server for X\", when you need a capability (database, browser, payments, observability, docs) you don't have, or when choosing between several MCP servers.",
    "license": "MIT",
    "compatibility": "Needs HTTPS access to mcp.indexagentica.com (no auth, no API key) and the server you probe. The scripts need bash, curl and jq. An MCP client is optional.",
    "metadata": {
      "title": "Pick an MCP server",
      "summary": "A repeatable shortlist-compare-probe workflow for selecting an MCP server from Index Agentica, with two scripts that pull candidates from the live REST API and test a remote endpoint's auth without credentials.",
      "author": "Agentica Author",
      "version": "1.0",
      "last_verified": "2026-10-15",
      "published": "2026-10-15",
      "tags": "mcp, discovery, mcp-servers, selection, oauth",
      "entries": "indexagentica-mcp, model-context-protocol, mcp-authorization, official-mcp-registry, mcp-inspector",
      "related": "indexagentica-lookup, connect-remote-mcp, connect-an-agent-to-a-remote-mcp-server, agent-auth-and-delegated-access, publish-an-mcp-server, database-mcp-servers, test-your-mcp-server, mcp-gateways",
      "sources": "https://mcp.indexagentica.com/openapi.json https://mcp.indexagentica.com/.well-known/mcp/server-card.json https://indexagentica.com/api/mcp-servers.json https://indexagentica.com/schema/entry.schema.json https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization https://datatracker.ietf.org/doc/html/rfc9728"
    }
  },
  "markdown": "\n# Pick an MCP server\n\nUse this skill to go from \"I need an MCP server that does X\" to one server that is verified, configured and working. It has three steps: **shortlist**, **compare**, **probe**. Then you hand off to the client setup.\n\nThe data comes from Index Agentica (https://indexagentica.com), a curated directory where every MCP server entry has a source link and a `last_verified` date. The live API at `https://mcp.indexagentica.com` needs no key and mirrors the static site about every 10 minutes. For general directory search (any category, guides, comparisons), use the companion skill https://indexagentica.com/skills/indexagentica-lookup/.\n\n## 1. Shortlist\n\nTurn the user's need into 1–3 keywords (a product name, or a capability such as `postgres`, `browser`, `payments`, `traces`). Then run:\n\n```bash\nbash scripts/shortlist.sh \"postgres\"        # optional 2nd arg: limit (default 10)\n```\n\nIt calls `GET /search?category=mcp-servers&q=...`, then `GET /entries/<id>` for each hit, and prints a TSV table:\n\n```\nid               status  remote_endpoint               auth   license     maintainer  last_verified\nneon-mcp-server  active  https://mcp.neon.tech/mcp     oauth  MIT         Neon        2026-10-02\nsupabase-mcp     active  https://mcp.supabase.com/mcp  oauth  Apache-2.0  Supabase    2026-10-02\n```\n\n(Real output from 2026-10-15.) Without the script:\n\n```bash\ncurl -s -G https://mcp.indexagentica.com/search --data-urlencode q=postgres \\\n  --data-urlencode category=mcp-servers | jq -r '.results[] | [.id, .mcp_endpoint // \"local\"] | @tsv'\ncurl -s https://mcp.indexagentica.com/entries/neon-mcp-server | jq '{agent_access, license, maintainer, repo, last_verified}'\n```\n\nOver MCP, the same calls are the `search` tool (`{\"query\": \"postgres\", \"category\": \"mcp-servers\"}`) and the `get_entry` tool (`{\"id\": \"neon-mcp-server\"}`) on `https://mcp.indexagentica.com/mcp`.\n\nIf nothing matches, search without the category filter. Some vendors' MCP endpoints live on entries in `apis` or `finance-payments`. Then try the official MCP Registry (https://registry.modelcontextprotocol.io). Don't invent an endpoint.\n\n## 2. Compare\n\nThese are the fields that matter. In the entry JSON they live under `agent_access` unless noted:\n\n| Field | What it tells you | Prefer |\n|---|---|---|\n| `mcp_endpoint` | A hosted remote server (Streamable HTTP). If missing, it is local only (stdio or self-run); read `notes` and the repo for the launch command | Remote, for zero install; local, when data must stay on the machine |\n| `auth` | `oauth` (browser sign-in, scoped tokens), `api-key` (a secret you must store), `none`, or `other` (read `notes`) | `oauth` for user data; `none` only for public data |\n| `license` (top level) | Can you self-host or fork it? Missing means unknown | An OSI licence if you may self-host |\n| `maintainer` (top level) | Who runs it. If it matches the product vendor (Neon for Neon), the server is first-party | First-party over community servers for anything with write access |\n| `status` (top level) | `active`, `beta`, `deprecated`, `unknown` | `active` |\n| `last_verified` (top level) | When Index Agentica last checked the sources | Re-check anything older than about 90 days |\n| `notes` | Install commands, required scopes, regional endpoints | Read before configuring |\n\nDecision rules:\n- **Least privilege.** If two servers fit, pick the one with narrower scopes or a read-only mode (check `notes` and the docs).\n- **Avoid passing tokens through.** Prefer OAuth servers whose tokens are issued for the MCP server itself. Don't paste a user's raw third-party token into a server's config unless its docs require that.\n- **Write access needs a human.** For servers that can spend money, send messages or change production data, show the shortlist to the user and get a choice before connecting.\n\n## 3. Probe\n\nBefore configuring the client, confirm the endpoint is alive and learn how it authenticates:\n\n```bash\nbash scripts/probe.sh https://mcp.neon.tech/mcp\n```\n\nIt sends one unauthenticated MCP `initialize` POST and interprets the answer:\n- **200**: the server is open. The first bytes of the reply are shown.\n- **401** with `WWW-Authenticate: Bearer ... resource_metadata=\"...\"`: OAuth per the MCP authorization spec. The script fetches the Protected Resource Metadata (RFC 9728) and prints the `resource` and `authorization_servers`. Your client will open a browser sign-in; a human may have to complete it.\n- **401 without `resource_metadata`, or 403**: probably an API key or custom header. Read the docs.\n- **404/405**: wrong path or not Streamable HTTP. Re-check the URL from the entry.\n\nReal result on 2026-10-15 for Neon: `HTTP 401`, metadata at `https://mcp.neon.tech/.well-known/oauth-protected-resource/mcp`, `resource: https://mcp.neon.tech/mcp`, `authorization_servers: [\"https://mcp.neon.tech\"]`.\n\nThe probe sends no credentials and changes nothing on the server.\n\n## 4. Hand off\n\nConfigure the chosen server in the user's client with the skill https://indexagentica.com/skills/connect-remote-mcp/ (Claude Code, Codex, Cursor, Gemini CLI, VS Code). For the OAuth background, see https://indexagentica.com/guides/connect-an-agent-to-a-remote-mcp-server/ and https://indexagentica.com/guides/agent-auth-and-delegated-access/.\n\nReport back to the user:\n1. The shortlist table, and why you picked the winner (the field values that decided it).\n2. The probe result.\n3. Anything unverified: a missing licence, a stale `last_verified`, a community maintainer.\n\nIf a server you found elsewhere is missing from Index Agentica, suggest it via https://indexagentica.com/contribute.json.\n",
  "raw": "---\nname: pick-an-mcp-server\ndescription: Choose the right MCP server for a task by shortlisting candidates from the Index Agentica directory (live REST/MCP at mcp.indexagentica.com), comparing them on remote vs local, auth method, licence, maintainer and freshness, then probing the winner's endpoint before wiring it into the client. Use when a user asks for \"an MCP server for X\", when you need a capability (database, browser, payments, observability, docs) you don't have, or when choosing between several MCP servers.\nlicense: MIT\ncompatibility: Needs HTTPS access to mcp.indexagentica.com (no auth, no API key) and the server you probe. The scripts need bash, curl and jq. An MCP client is optional.\nmetadata:\n  title: Pick an MCP server\n  summary: A repeatable shortlist-compare-probe workflow for selecting an MCP server from Index Agentica, with two scripts that pull candidates from the live REST API and test a remote endpoint's auth without credentials.\n  author: Agentica Author\n  version: \"1.0\"\n  last_verified: 2026-10-15\n  published: 2026-10-15\n  tags: mcp, discovery, mcp-servers, selection, oauth\n  entries: indexagentica-mcp, model-context-protocol, mcp-authorization, official-mcp-registry, mcp-inspector\n  related: indexagentica-lookup, connect-remote-mcp, connect-an-agent-to-a-remote-mcp-server, agent-auth-and-delegated-access, publish-an-mcp-server, database-mcp-servers, test-your-mcp-server, mcp-gateways\n  sources: https://mcp.indexagentica.com/openapi.json https://mcp.indexagentica.com/.well-known/mcp/server-card.json https://indexagentica.com/api/mcp-servers.json https://indexagentica.com/schema/entry.schema.json https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization https://datatracker.ietf.org/doc/html/rfc9728\n---\n\n# Pick an MCP server\n\nUse this skill to go from \"I need an MCP server that does X\" to one server that is verified, configured and working. It has three steps: **shortlist**, **compare**, **probe**. Then you hand off to the client setup.\n\nThe data comes from Index Agentica (https://indexagentica.com), a curated directory where every MCP server entry has a source link and a `last_verified` date. The live API at `https://mcp.indexagentica.com` needs no key and mirrors the static site about every 10 minutes. For general directory search (any category, guides, comparisons), use the companion skill https://indexagentica.com/skills/indexagentica-lookup/.\n\n## 1. Shortlist\n\nTurn the user's need into 1–3 keywords (a product name, or a capability such as `postgres`, `browser`, `payments`, `traces`). Then run:\n\n```bash\nbash scripts/shortlist.sh \"postgres\"        # optional 2nd arg: limit (default 10)\n```\n\nIt calls `GET /search?category=mcp-servers&q=...`, then `GET /entries/<id>` for each hit, and prints a TSV table:\n\n```\nid               status  remote_endpoint               auth   license     maintainer  last_verified\nneon-mcp-server  active  https://mcp.neon.tech/mcp     oauth  MIT         Neon        2026-10-02\nsupabase-mcp     active  https://mcp.supabase.com/mcp  oauth  Apache-2.0  Supabase    2026-10-02\n```\n\n(Real output from 2026-10-15.) Without the script:\n\n```bash\ncurl -s -G https://mcp.indexagentica.com/search --data-urlencode q=postgres \\\n  --data-urlencode category=mcp-servers | jq -r '.results[] | [.id, .mcp_endpoint // \"local\"] | @tsv'\ncurl -s https://mcp.indexagentica.com/entries/neon-mcp-server | jq '{agent_access, license, maintainer, repo, last_verified}'\n```\n\nOver MCP, the same calls are the `search` tool (`{\"query\": \"postgres\", \"category\": \"mcp-servers\"}`) and the `get_entry` tool (`{\"id\": \"neon-mcp-server\"}`) on `https://mcp.indexagentica.com/mcp`.\n\nIf nothing matches, search without the category filter. Some vendors' MCP endpoints live on entries in `apis` or `finance-payments`. Then try the official MCP Registry (https://registry.modelcontextprotocol.io). Don't invent an endpoint.\n\n## 2. Compare\n\nThese are the fields that matter. In the entry JSON they live under `agent_access` unless noted:\n\n| Field | What it tells you | Prefer |\n|---|---|---|\n| `mcp_endpoint` | A hosted remote server (Streamable HTTP). If missing, it is local only (stdio or self-run); read `notes` and the repo for the launch command | Remote, for zero install; local, when data must stay on the machine |\n| `auth` | `oauth` (browser sign-in, scoped tokens), `api-key` (a secret you must store), `none`, or `other` (read `notes`) | `oauth` for user data; `none` only for public data |\n| `license` (top level) | Can you self-host or fork it? Missing means unknown | An OSI licence if you may self-host |\n| `maintainer` (top level) | Who runs it. If it matches the product vendor (Neon for Neon), the server is first-party | First-party over community servers for anything with write access |\n| `status` (top level) | `active`, `beta`, `deprecated`, `unknown` | `active` |\n| `last_verified` (top level) | When Index Agentica last checked the sources | Re-check anything older than about 90 days |\n| `notes` | Install commands, required scopes, regional endpoints | Read before configuring |\n\nDecision rules:\n- **Least privilege.** If two servers fit, pick the one with narrower scopes or a read-only mode (check `notes` and the docs).\n- **Avoid passing tokens through.** Prefer OAuth servers whose tokens are issued for the MCP server itself. Don't paste a user's raw third-party token into a server's config unless its docs require that.\n- **Write access needs a human.** For servers that can spend money, send messages or change production data, show the shortlist to the user and get a choice before connecting.\n\n## 3. Probe\n\nBefore configuring the client, confirm the endpoint is alive and learn how it authenticates:\n\n```bash\nbash scripts/probe.sh https://mcp.neon.tech/mcp\n```\n\nIt sends one unauthenticated MCP `initialize` POST and interprets the answer:\n- **200**: the server is open. The first bytes of the reply are shown.\n- **401** with `WWW-Authenticate: Bearer ... resource_metadata=\"...\"`: OAuth per the MCP authorization spec. The script fetches the Protected Resource Metadata (RFC 9728) and prints the `resource` and `authorization_servers`. Your client will open a browser sign-in; a human may have to complete it.\n- **401 without `resource_metadata`, or 403**: probably an API key or custom header. Read the docs.\n- **404/405**: wrong path or not Streamable HTTP. Re-check the URL from the entry.\n\nReal result on 2026-10-15 for Neon: `HTTP 401`, metadata at `https://mcp.neon.tech/.well-known/oauth-protected-resource/mcp`, `resource: https://mcp.neon.tech/mcp`, `authorization_servers: [\"https://mcp.neon.tech\"]`.\n\nThe probe sends no credentials and changes nothing on the server.\n\n## 4. Hand off\n\nConfigure the chosen server in the user's client with the skill https://indexagentica.com/skills/connect-remote-mcp/ (Claude Code, Codex, Cursor, Gemini CLI, VS Code). For the OAuth background, see https://indexagentica.com/guides/connect-an-agent-to-a-remote-mcp-server/ and https://indexagentica.com/guides/agent-auth-and-delegated-access/.\n\nReport back to the user:\n1. The shortlist table, and why you picked the winner (the field values that decided it).\n2. The probe result.\n3. Anything unverified: a missing licence, a stale `last_verified`, a community maintainer.\n\nIf a server you found elsewhere is missing from Index Agentica, suggest it via https://indexagentica.com/contribute.json.\n",
  "html": "<h3>Pick an MCP server</h3>\n<p>Use this skill to go from &quot;I need an MCP server that does X&quot; to one server that is verified, configured and working. It has three steps: <strong>shortlist</strong>, <strong>compare</strong>, <strong>probe</strong>. Then you hand off to the client setup.</p>\n<p>The data comes from Index Agentica (https://indexagentica.com), a curated directory where every MCP server entry has a source link and a <code>last_verified</code> date. The live API at <code>https://mcp.indexagentica.com</code> needs no key and mirrors the static site about every 10 minutes. For general directory search (any category, guides, comparisons), use the companion skill https://indexagentica.com/skills/indexagentica-lookup/.</p>\n<h4>1. Shortlist</h4>\n<p>Turn the user&#39;s need into 1–3 keywords (a product name, or a capability such as <code>postgres</code>, <code>browser</code>, <code>payments</code>, <code>traces</code>). Then run:</p>\n<pre><code class=\"language-bash\">bash scripts/shortlist.sh &quot;postgres&quot;        # optional 2nd arg: limit (default 10)</code></pre>\n<p>It calls <code>GET /search?category=mcp-servers&amp;q=...</code>, then <code>GET /entries/&lt;id&gt;</code> for each hit, and prints a TSV table:</p>\n<pre><code>id               status  remote_endpoint               auth   license     maintainer  last_verified\nneon-mcp-server  active  https://mcp.neon.tech/mcp     oauth  MIT         Neon        2026-10-02\nsupabase-mcp     active  https://mcp.supabase.com/mcp  oauth  Apache-2.0  Supabase    2026-10-02</code></pre>\n<p>(Real output from 2026-10-15.) Without the script:</p>\n<pre><code class=\"language-bash\">curl -s -G https://mcp.indexagentica.com/search --data-urlencode q=postgres \\\n  --data-urlencode category=mcp-servers | jq -r &#39;.results[] | [.id, .mcp_endpoint // &quot;local&quot;] | @tsv&#39;\ncurl -s https://mcp.indexagentica.com/entries/neon-mcp-server | jq &#39;{agent_access, license, maintainer, repo, last_verified}&#39;</code></pre>\n<p>Over MCP, the same calls are the <code>search</code> tool (<code>{&quot;query&quot;: &quot;postgres&quot;, &quot;category&quot;: &quot;mcp-servers&quot;}</code>) and the <code>get_entry</code> tool (<code>{&quot;id&quot;: &quot;neon-mcp-server&quot;}</code>) on <code>https://mcp.indexagentica.com/mcp</code>.</p>\n<p>If nothing matches, search without the category filter. Some vendors&#39; MCP endpoints live on entries in <code>apis</code> or <code>finance-payments</code>. Then try the official MCP Registry (https://registry.modelcontextprotocol.io). Don&#39;t invent an endpoint.</p>\n<h4>2. Compare</h4>\n<p>These are the fields that matter. In the entry JSON they live under <code>agent_access</code> unless noted:</p>\n<table><thead><tr><th scope=\"col\">Field</th><th scope=\"col\">What it tells you</th><th scope=\"col\">Prefer</th></tr></thead><tbody><tr><td><code>mcp_endpoint</code></td><td>A hosted remote server (Streamable HTTP). If missing, it is local only (stdio or self-run); read <code>notes</code> and the repo for the launch command</td><td>Remote, for zero install; local, when data must stay on the machine</td></tr><tr><td><code>auth</code></td><td><code>oauth</code> (browser sign-in, scoped tokens), <code>api-key</code> (a secret you must store), <code>none</code>, or <code>other</code> (read <code>notes</code>)</td><td><code>oauth</code> for user data; <code>none</code> only for public data</td></tr><tr><td><code>license</code> (top level)</td><td>Can you self-host or fork it? Missing means unknown</td><td>An OSI licence if you may self-host</td></tr><tr><td><code>maintainer</code> (top level)</td><td>Who runs it. If it matches the product vendor (Neon for Neon), the server is first-party</td><td>First-party over community servers for anything with write access</td></tr><tr><td><code>status</code> (top level)</td><td><code>active</code>, <code>beta</code>, <code>deprecated</code>, <code>unknown</code></td><td><code>active</code></td></tr><tr><td><code>last_verified</code> (top level)</td><td>When Index Agentica last checked the sources</td><td>Re-check anything older than about 90 days</td></tr><tr><td><code>notes</code></td><td>Install commands, required scopes, regional endpoints</td><td>Read before configuring</td></tr></tbody></table>\n<p>Decision rules:</p>\n<ul><li><strong>Least privilege.</strong> If two servers fit, pick the one with narrower scopes or a read-only mode (check <code>notes</code> and the docs).</li><li><strong>Avoid passing tokens through.</strong> Prefer OAuth servers whose tokens are issued for the MCP server itself. Don&#39;t paste a user&#39;s raw third-party token into a server&#39;s config unless its docs require that.</li><li><strong>Write access needs a human.</strong> For servers that can spend money, send messages or change production data, show the shortlist to the user and get a choice before connecting.</li></ul>\n<h4>3. Probe</h4>\n<p>Before configuring the client, confirm the endpoint is alive and learn how it authenticates:</p>\n<pre><code class=\"language-bash\">bash scripts/probe.sh https://mcp.neon.tech/mcp</code></pre>\n<p>It sends one unauthenticated MCP <code>initialize</code> POST and interprets the answer:</p>\n<ul><li><strong>200</strong>: the server is open. The first bytes of the reply are shown.</li><li><strong>401</strong> with <code>WWW-Authenticate: Bearer ... resource_metadata=&quot;...&quot;</code>: OAuth per the MCP authorization spec. The script fetches the Protected Resource Metadata (RFC 9728) and prints the <code>resource</code> and <code>authorization_servers</code>. Your client will open a browser sign-in; a human may have to complete it.</li><li><strong>401 without <code>resource_metadata</code>, or 403</strong>: probably an API key or custom header. Read the docs.</li><li><strong>404/405</strong>: wrong path or not Streamable HTTP. Re-check the URL from the entry.</li></ul>\n<p>Real result on 2026-10-15 for Neon: <code>HTTP 401</code>, metadata at <code>https://mcp.neon.tech/.well-known/oauth-protected-resource/mcp</code>, <code>resource: https://mcp.neon.tech/mcp</code>, <code>authorization_servers: [&quot;https://mcp.neon.tech&quot;]</code>.</p>\n<p>The probe sends no credentials and changes nothing on the server.</p>\n<h4>4. Hand off</h4>\n<p>Configure the chosen server in the user&#39;s client with the skill https://indexagentica.com/skills/connect-remote-mcp/ (Claude Code, Codex, Cursor, Gemini CLI, VS Code). For the OAuth background, see https://indexagentica.com/guides/connect-an-agent-to-a-remote-mcp-server/ and https://indexagentica.com/guides/agent-auth-and-delegated-access/.</p>\n<p>Report back to the user:</p>\n<ol><li>The shortlist table, and why you picked the winner (the field values that decided it).</li><li>The probe result.</li><li>Anything unverified: a missing licence, a stale <code>last_verified</code>, a community maintainer.</li></ol>\n<p>If a server you found elsewhere is missing from Index Agentica, suggest it via https://indexagentica.com/contribute.json.</p>"
}
