{
  "data": {
    "a": {
      "slug": "context7",
      "name": "Context7",
      "vendor": "Upstash",
      "vendorUrl": "https://context7.com",
      "kind": "mcp",
      "category": "code",
      "summary": "Serves up-to-date, version-specific library documentation and code examples into agent prompts via two tools (resolve-library-id, query-docs).",
      "url": "https://www.anchorterminal.com/tools/context7",
      "markdownUrl": "https://www.anchorterminal.com/tools/context7.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/context7.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/context7.json",
      "repo": "https://github.com/upstash/context7",
      "license": "MIT",
      "transports": [
        "stdio",
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.context7.com/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@upstash/context7-mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "API key is optional; anonymous access works at low rate limits. Pass 'Authorization: Bearer \u003ckey\u003e' (or X-Context7-API-Key; CONTEXT7_API_KEY or --api-key for the local server) for higher limits and private repos. OAuth via Clerk at https://mcp.context7.com/mcp/oauth. 'npx ctx7 setup' does a device-login flow. 4.0.5 (2026-09-04) required a key for the Claude Code plugin; 4.0.7 (2026-09-09) allows anonymous plugin use again when the key header is empty.",
      "pricing": "freemium",
      "pricingNotes": "Free: 1,000 API calls/month (blocked after the limit, +20 bonus calls/day while blocked), no card. Pro: $10/seat/month incl. 2,000 calls/seat, overage $5 per 1,000 calls, private-repo parsing $5 per 1M tokens. Enterprise: custom, from $30/user/month, SSO, SLA, self-hosting (https://context7.com/plans).",
      "priceSummary": "$5 / 1k calls",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in README, docs or pricing pages (checked 2026-09-25).",
        "endpoints": []
      },
      "toolCount": 2,
      "popularity": {
        "githubStars": 62400,
        "npmWeekly": 619257,
        "pypiWeekly": null,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://context7.com/docs",
      "llmsTxt": "https://context7.com/llms.txt",
      "registryName": "io.github.upstash/context7",
      "capabilities": [
        "code.docs"
      ],
      "tags": [
        "official",
        "hosted",
        "local",
        "open-source",
        "docs",
        "freemium"
      ],
      "lastRelease": "2026-09-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 73,
        "grade": "BB",
        "agentReady": true,
        "rank": 62,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 1,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 95,
          "payments": 60,
          "reliability": 68,
          "schema": 86,
          "security": 69,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Two tools, both annotated `readOnlyHint: true` and `idempotentHint: true`. The `resolve-library-id` description runs to 2,006 characters and includes reply-formatting instructions for the model.",
        "strengths": [
          "Two tools, both annotated `readOnlyHint: true` and `idempotentHint: true`",
          "Anonymous calls work on https://mcp.context7.com/mcp, and the free plan allows 1,000 calls a month with no card",
          "429s carry `Retry-After` and `RateLimit-*` headers, documented with backoff guidance",
          "Thirteen MCP releases since 3 July 2026 with a changelog that explains each fix",
          "Data-privacy page names what is sent, the reranking model providers and a 30-day log retention"
        ],
        "weaknesses": [
          "The `resolve-library-id` description runs to 2,006 characters and includes reply-formatting instructions for the model",
          "No page, limit or token parameter since 2.0.0, so response size depends on how narrow the query is",
          "The 11 August 2026 mcp.context7.com outage (503s from a stream leak in 4.0.0) appears in the changelog but not on status.upstash.com",
          "Errors return as plain text without `isError`, so a client can't tell a 429 from a result",
          "SECURITY.md still lists only 1.0.x as supported while 4.1.1 ships"
        ],
        "agentNotes": [
          "Call `resolve-library-id` first unless you already have an id like `/vercel/next.js`; `query-docs` answers a bare name with a not-found message",
          "Ask one concept per `query-docs` call; there's no size parameter, so a broad query returns a large chunk",
          "Read the text of every result, because a 429 or 404 comes back as normal content, not an error",
          "Send `Authorization: Bearer \u003cctx7sk key\u003e` before looping; anonymous limits are low and unpublished",
          "Keep secrets and proprietary code out of `query`; queries are stored and sent to third-party models for reranking"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 73
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 95,
          "payments": 60,
          "reliability": 68,
          "schema": 86,
          "security": 69,
          "transparency": 65
        },
        "provenanceScore": 78
      },
      "connect": {
        "claudeCode": "claude mcp add --transport http context7 https://mcp.context7.com/mcp",
        "config": {
          "mcpServers": {
            "context7": {
              "headers": {
                "Authorization": "Bearer ${CONTEXT7_API_KEY}"
              },
              "url": "https://mcp.context7.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/code.docs",
        "tool": "https://letme.dev/context7"
      },
      "area": "developer",
      "unitPrices": [
        {
          "item": "Calls over the plan allowance",
          "unit": "1k-calls",
          "usd": 5
        }
      ],
      "provenance": {
        "legalEntity": "Upstash",
        "domain": "context7.com",
        "domainRegistered": "2025-01-23",
        "domainNote": "Context7 is run by Upstash. The terms are Upstash's. The status page has a Context7 component.",
        "endpointOnVendorDomain": true,
        "terms": "https://upstash.com/trust/terms.pdf",
        "privacy": "https://upstash.com/trust/privacy.pdf",
        "statusPage": "https://status.upstash.com",
        "changelog": "https://github.com/upstash/context7/blob/master/packages/mcp/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/context7.json",
      "live": {
        "slug": "context7",
        "probe": {
          "target": "https://mcp.context7.com/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-10-05T00:15:21.862083272Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 257,
          "lastNote": "initialize answered",
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 260,
          "p95ms24h": 299,
          "samples24h": 272,
          "samples30d": 2059,
          "days": [
            {
              "date": "2026-09-27",
              "probes": 132,
              "ok": 132
            },
            {
              "date": "2026-09-28",
              "probes": 285,
              "ok": 285
            },
            {
              "date": "2026-09-29",
              "probes": 286,
              "ok": 286
            },
            {
              "date": "2026-09-30",
              "probes": 286,
              "ok": 286
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.upstash.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T00:11:14.888354534Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "upstash/context7",
            "version": "@upstash/context7-opencode@0.2.0",
            "released": "2026-10-02",
            "seenAt": "2026-10-04T16:24:33.910316349Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.upstash/context7",
            "version": "4.1.1",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "@upstash/context7-mcp",
            "version": "4.1.1",
            "seenAt": "2026-10-04T16:24:33.075349785Z"
          }
        ],
        "githubStars": 62668,
        "npmWeekly": 483706,
        "securityTxt": {
          "url": "https://context7.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:56.33212366Z"
        },
        "llmsTxt": {
          "url": "https://context7.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:27.951846491Z"
        },
        "domain": {
          "domain": "context7.com",
          "registered": "2025-01-23",
          "source": "https://rdap.verisign.com/com/v1/domain/context7.com",
          "checkedAt": "2026-10-04T13:10:09.934866464Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/upstash/context7/master/packages/mcp/CHANGELOG.md",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:47:55.269262679Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "837eb0fde13e"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.context7.com/mcp",
          "checkedAt": "2026-10-04T22:19:24.545193793Z",
          "status": "ok",
          "protocol": "2026-07-28",
          "tools": [
            {
              "name": "resolve-library-id",
              "title": "Resolve Context7 Library ID",
              "description": "Resolves a package/product name to a Context7-compatible library ID and returns matching libraries.\n\nYou MUST call this function before 'Query Documentation' tool to obtain a valid Context7-compatible library ID UNLESS the user explicitly provides a library ID in the format '/org/project' or '/org/project/version' in their query.\n\nEach result includes:\n- Library ID: Context7-compatible identifier (format: /org/project)\n- Name: Library or package name\n- Description: Short summary\n- Code Snippets: Number of available code examples\n- Source Reputation: Authority indicator (High, Medium, Low, or Unknown)\n- Benchmark Score: Quality indicator (100 is the highest score)\n- Versions: List of versions if available. Use one of those versions if the user provides a version in their query. The format of the version is /org/project/version.\n\nFor best results, select libraries based on name match, source reputation, snippet coverage, benchmark score, and relevance to your use case.\n\nSelection Process:\n1. Analyze the query to understand what library/package the user is looking for\n2. Return the most relevant match based on:\n- Name similarity to the query (exact matches prioritized)\n- Description relevance to the query's intent\n- Documentation coverage (prioritize libraries with higher Code Snippet counts)\n- Source reputation (consider libraries with High or Medium reputation more authoritative)\n- Benchmark Score: Quality indicator (100 is the highest score)\n\nResponse Format:\n- Return the selected library ID in a clearly marked section\n- Provide a brief explanation for why this library was chosen\n- If multiple good matches exist, acknowledge this but proceed with the most relevant one\n- If no good matches exist, clearly state this and suggest query refinements\n\nFor ambiguous queries, request clarification before proceeding with a best-guess match.\n\nIMPORTANT: Do not call this tool more than 3 times per question. If you cannot find what you need after 3 calls, use the best result you have.",
              "inputSchema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "properties": {
                  "libraryName": {
                    "description": "Library name to search for and retrieve a Context7-compatible library ID. Use the official library name with proper punctuation — e.g., 'Next.js' instead of 'nextjs', 'Customer.io' instead of 'customerio', 'Three.js' instead of 'threejs'.",
                    "type": "string"
                  },
                  "query": {
                    "description": "What to look up in the library's documentation. This is used to rank library results by relevance to what the user is trying to accomplish. The query is sent to the Context7 API for processing. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query.",
                    "type": "string"
                  }
                },
                "required": [
                  "query",
                  "libraryName"
                ],
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": true,
                "readOnlyHint": true
              }
            },
            {
              "name": "query-docs",
              "title": "Query Documentation",
              "description": "Retrieves and queries up-to-date documentation and code examples from Context7 for any programming library or framework.\n\nYou must call 'Resolve Context7 Library ID' tool first to obtain the exact Context7-compatible library ID required to use this tool, UNLESS the user explicitly provides a library ID in the format '/org/project' or '/org/project/version' in their query.\n\nDo not call this tool more than 3 times per question.",
              "inputSchema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "properties": {
                  "libraryId": {
                    "description": "Exact Context7-compatible library ID (e.g., '/mongodb/docs', '/vercel/next.js', '/supabase/supabase', '/vercel/next.js/v14.3.0-canary.87') retrieved from 'resolve-library-id' or directly from user query in the format '/org/project' or '/org/project/version'.",
                    "type": "string"
                  },
                  "query": {
                    "description": "What to look up in the library's documentation, scoped to a single concept. Be specific and include relevant details, but keep each query to one topic — if the user's question spans multiple distinct concepts, make a separate call per concept instead of combining them, unless the question is about how the concepts interact. Good: 'How to set up authentication with JWT in Express.js' or 'React useEffect cleanup function examples'. Bad (too vague): 'auth' or 'hooks'. Bad (too broad): 'routing and auth and caching in Next.js'. The query is sent to the Context7 API for processing. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query.",
                    "type": "string"
                  }
                },
                "required": [
                  "libraryId",
                  "query"
                ],
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": true,
                "readOnlyHint": true
              }
            }
          ],
          "schemaTokens": 1216,
          "changedAt": "2026-09-28T21:55:38.368635118Z",
          "check": {
            "checker": "anchor-check/1.0",
            "totalTokens": 1216,
            "counts": {
              "error": 0,
              "note": 1,
              "warn": 1
            },
            "findings": [
              {
                "rule": "TC07",
                "severity": "warn",
                "tool": "resolve-library-id",
                "message": "the description is about 502 tokens",
                "fix": "Keep the description to what a model needs to choose and call the tool; move the manual to a resource or the docs."
              },
              {
                "rule": "TC24",
                "severity": "note",
                "message": "2 of 2 tools have no outputSchema",
                "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
              }
            ]
          }
        },
        "updatedAt": "2026-10-05T00:15:21.862083272Z"
      }
    },
    "b": {
      "slug": "microsoft-learn-mcp",
      "name": "Microsoft Learn MCP Server",
      "vendor": "Microsoft",
      "vendorUrl": "https://learn.microsoft.com/en-us/training/support/mcp",
      "kind": "mcp",
      "category": "code",
      "summary": "Microsoft's hosted documentation server at learn.microsoft.com/api/mcp.",
      "url": "https://www.anchorterminal.com/tools/microsoft-learn-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/microsoft-learn-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/microsoft-learn-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/microsoft-learn-mcp.json",
      "repo": "https://github.com/microsoftdocs/mcp",
      "license": "proprietary",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://learn.microsoft.com/api/mcp",
      "packages": [],
      "auth": "none",
      "authNotes": "Public endpoint, no key or login. The FAQ says rate limits exist for fair use but gives no numbers.",
      "pricing": "free",
      "pricingNotes": "Free. No account, no key, no card.",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Free public endpoint, nothing to pay.",
        "endpoints": []
      },
      "toolCount": 3,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://learn.microsoft.com/en-us/training/support/mcp-developer-reference",
      "registryName": "com.microsoft/microsoft-learn-mcp",
      "capabilities": [
        "code.docs",
        "docs.microsoft"
      ],
      "tags": [
        "official",
        "hosted",
        "no-auth",
        "docs",
        "keyless"
      ],
      "lastRelease": "2026-03-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 48.1,
        "grade": "D",
        "agentReady": false,
        "rank": 377,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 58,
          "maintenance": 28,
          "payments": 60,
          "reliability": 20,
          "schema": 57,
          "security": 60,
          "transparency": 57
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Access requires no account, key or card. No status page was found, and the FAQ does not specify numeric rate limits.",
        "strengths": [
          "No account, key or card, so an agent connects in one step",
          "Three tools, each a read with one required parameter",
          "`maxTokenBudget` on the URL caps search-result size",
          "Generally available since 7 November 2025 and listed in the official registry under com.microsoft"
        ],
        "weaknesses": [
          "No status page, and the FAQ admits rate limits without giving numbers",
          "Microsoft says tools can change at any time and doesn't version them",
          "No statement of what the endpoint logs or keeps",
          "`microsoft_docs_fetch` returns whole pages with no size control",
          "Microsoft content only"
        ],
        "agentNotes": [
          "Append `?maxTokenBudget=2000` to the endpoint URL to cap search results; it doesn't affect fetch",
          "Call `microsoft_docs_search` first and fetch only the one or two URLs that matter, because fetch returns the full page",
          "Re-read `tools/list` after any 400 or 404; Microsoft changes tools without versioning them",
          "Pass `language` to `microsoft_code_sample_search` when you want samples in one language"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 48.1
          }
        ],
        "editorialScores": {
          "ergonomics": 58,
          "maintenance": 28,
          "payments": 60,
          "reliability": 20,
          "schema": 57,
          "security": 60,
          "transparency": 28
        },
        "provenanceScore": 85
      },
      "connect": {
        "claudeCode": "claude mcp add --transport http microsoft-learn https://learn.microsoft.com/api/mcp",
        "config": {
          "mcpServers": {
            "microsoft.docs.mcp": {
              "type": "http",
              "url": "https://learn.microsoft.com/api/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/code.docs",
        "tool": "https://letme.dev/microsoft-learn-mcp"
      },
      "sameCompany": [
        "azure-foundry-fine-tuning",
        "azure-ai-content-safety",
        "azure-speech-to-text",
        "azure-text-to-speech",
        "playwright-mcp",
        "azure-mcp",
        "azure-translator",
        "microsoft-graph-calendar"
      ],
      "area": "developer",
      "provenance": {
        "legalEntity": "Microsoft Corporation",
        "domain": "microsoft.com",
        "domainRegistered": "1991-05-02",
        "domainNote": "microsoft.com publishes a security.txt, but it passed its Expires date on 2026-09-23.",
        "endpointOnVendorDomain": true,
        "terms": "https://learn.microsoft.com/en-us/legal/termsofuse",
        "privacy": "https://privacy.microsoft.com/privacystatement",
        "statusPage": "",
        "changelog": "https://learn.microsoft.com/en-us/training/support/mcp-release-notes",
        "securityTxt": "expired",
        "checked": "2026-09-26",
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/microsoft-learn-mcp.json",
      "live": {
        "slug": "microsoft-learn-mcp",
        "probe": {
          "target": "https://learn.microsoft.com/api/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-10-05T00:15:26.502326834Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 126,
          "lastNote": "initialize answered",
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 140,
          "p95ms24h": 230,
          "samples24h": 272,
          "samples30d": 2059,
          "days": [
            {
              "date": "2026-09-27",
              "probes": 132,
              "ok": 132
            },
            {
              "date": "2026-09-28",
              "probes": 285,
              "ok": 285
            },
            {
              "date": "2026-09-29",
              "probes": 286,
              "ok": 286
            },
            {
              "date": "2026-09-30",
              "probes": 286,
              "ok": 286
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 3,
              "ok": 3
            }
          ]
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.microsoft/microsoft-learn-mcp",
            "version": "1.0.0",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          }
        ],
        "githubStars": 1927,
        "securityTxt": {
          "url": "https://microsoft.com/.well-known/security.txt",
          "state": "expired",
          "expires": "2026-09-23T16:00:00.000Z",
          "checkedAt": "2026-10-04T15:16:01.36832038Z"
        },
        "domain": {
          "domain": "microsoft.com",
          "registered": "1991-05-02",
          "source": "https://rdap.verisign.com/com/v1/domain/microsoft.com",
          "checkedAt": "2026-10-04T13:04:13.488857536Z"
        },
        "pages": [
          {
            "url": "https://learn.microsoft.com/en-us/training/support/mcp-release-notes",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:45:40.872153929Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "316012aed737"
          },
          {
            "url": "https://privacy.microsoft.com/privacystatement",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:05.38547745Z",
            "changedAt": "2026-10-04T15:47:05.38547745Z",
            "fingerprint": "990c1aef3097"
          },
          {
            "url": "https://learn.microsoft.com/en-us/legal/termsofuse",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:45:38.911135715Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "40a90e024129"
          }
        ],
        "mcpTools": {
          "url": "https://learn.microsoft.com/api/mcp",
          "checkedAt": "2026-10-04T22:19:53.835170407Z",
          "status": "ok",
          "note": "answered without the initialize handshake",
          "tools": [
            {
              "name": "microsoft_docs_search",
              "title": "Microsoft Docs Search",
              "description": "Search official Microsoft/Azure documentation to find the most relevant and trustworthy content for a user's query. This tool returns up to 10 high-quality content chunks (each max 500 tokens), extracted from Microsoft Learn and other official sources. Each result includes the article title, URL, and a self-contained content excerpt optimized for fast retrieval and reasoning. Always use this tool to quickly ground your answers in accurate, first-party Microsoft/Azure knowledge.\n\n## Follow-up Pattern\nTo ensure completeness, use microsoft_docs_fetch when high-value pages are identified by search. The fetch tool complements search by providing the full detail. This is a required step for comprehensive results.",
              "inputSchema": {
                "properties": {
                  "query": {
                    "default": null,
                    "description": "a query or topic about Microsoft/Azure products, services, platforms, developer tools, frameworks, or APIs",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "results": {
                    "items": {
                      "properties": {
                        "content": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "contentUrl": {
                          "type": "string"
                        },
                        "content_omitted": {
                          "type": "boolean"
                        },
                        "extensionData": {
                          "type": [
                            "object",
                            "null"
                          ]
                        },
                        "id": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "title": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": true,
                "readOnlyHint": true,
                "title": "Microsoft Docs Search"
              }
            },
            {
              "name": "microsoft_code_sample_search",
              "title": "Microsoft Code Sample Search",
              "description": "Search for code snippets and examples in official Microsoft Learn documentation. This tool retrieves relevant code samples from Microsoft documentation pages providing developers with practical implementation examples and best practices for Microsoft/Azure products and services related coding tasks. This tool will help you use the **LATEST OFFICIAL** code snippets to empower coding capabilities.\n\n## When to Use This Tool\n- When you are going to provide sample Microsoft/Azure related code snippets in your answers.\n- When you are **generating any Microsoft/Azure related code**.\n\n## Usage Pattern\nInput a descriptive query, or SDK/class/method name to retrieve related code samples. The optional parameter `language` can help to filter results.\n\nEligible values for `language` parameter include: csharp javascript typescript python powershell azurecli al sql java kusto cpp go rust ruby php",
              "inputSchema": {
                "properties": {
                  "language": {
                    "default": null,
                    "description": "Optional parameter specifying the programming language of code snippets to retrieve. Can significantly improve search quality if provided. Eligible values: csharp javascript typescript python powershell azurecli al sql java kusto cpp go rust ruby php",
                    "type": "string"
                  },
                  "query": {
                    "description": "a descriptive query, SDK name, method name or code snippet related to Microsoft/Azure products, services, platforms, developer tools, frameworks, APIs or SDKs",
                    "type": "string"
                  }
                },
                "required": [
                  "query"
                ],
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "results": {
                    "items": {
                      "properties": {
                        "codeSnippet": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "content_omitted": {
                          "type": "boolean"
                        },
                        "description": {
                          "type": "string"
                        },
                        "language": {
                          "type": "string"
                        },
                        "link": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": true,
                "readOnlyHint": true,
                "title": "Microsoft Code Sample Search"
              }
            },
            {
              "name": "microsoft_docs_fetch",
              "title": "Microsoft Docs Fetch",
              "description": "Fetch and convert a Microsoft Learn documentation webpage to markdown format. This tool retrieves the latest complete content of Microsoft documentation webpages including Azure, .NET, Microsoft 365, and other Microsoft technologies.\n\n## When to Use This Tool\n- When search results provide incomplete information or truncated content\n- When you need complete step-by-step procedures or tutorials\n- When you need troubleshooting sections, prerequisites, or detailed explanations\n- When search results reference a specific page that seems highly relevant\n- For comprehensive guides that require full context\n\n## Usage Pattern\nUse this tool AFTER microsoft_docs_search when you identify specific high-value pages that need complete content. The search tool gives you an overview; this tool gives you the complete picture.\n\n## URL Requirements\n- The URL must be a valid HTML documentation webpage from the microsoft.com domain\n- Binary files (PDF, DOCX, images, etc.) are not supported\n\n## Output Format\nmarkdown with headings, code blocks, tables, and links preserved.",
              "inputSchema": {
                "properties": {
                  "url": {
                    "description": "URL of the Microsoft documentation page to read",
                    "type": "string"
                  }
                },
                "required": [
                  "url"
                ],
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": true,
                "readOnlyHint": true,
                "title": "Microsoft Docs Fetch"
              }
            }
          ],
          "schemaTokens": 1220,
          "changedAt": "2026-09-28T21:55:53.802088388Z",
          "check": {
            "checker": "anchor-check/1.0",
            "totalTokens": 1220,
            "counts": {
              "error": 0,
              "note": 1,
              "warn": 1
            },
            "findings": [
              {
                "rule": "TC20",
                "severity": "warn",
                "tool": "microsoft_docs_search",
                "message": "the description steers the model",
                "fix": "Say what the tool is good at and let the model choose."
              },
              {
                "rule": "TC24",
                "severity": "note",
                "message": "1 of 3 tools have no outputSchema",
                "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
              }
            ]
          }
        },
        "updatedAt": "2026-10-05T00:15:26.502326834Z"
      }
    },
    "summary": "Context7 has a score of 73 (BB) against Microsoft Learn MCP Server's 48.1 (D). Both do documentation lookup. The largest gap is maintenance \u0026 community, 67 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/context7-vs-microsoft-learn-mcp",
    "json": "https://www.anchorterminal.com/compare/context7-vs-microsoft-learn-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/context7-vs-microsoft-learn-mcp.md",
    "slim": "https://www.anchorterminal.com/compare/context7-vs-microsoft-learn-mcp.min.md"
  },
  "markdown": "Context7 has a score of 73 (BB) against Microsoft Learn MCP Server's 48.1 (D). Both do documentation lookup. The largest gap is maintenance \u0026 community, 67 points.\n\n- Context7: grade BB, 73/100, rank #62 of 452. Markdown https://www.anchorterminal.com/tools/context7.md · JSON https://www.anchorterminal.com/api/v1/tools/context7.json\n- Microsoft Learn MCP Server: grade D, 48.1/100, rank #377 of 452. Markdown https://www.anchorterminal.com/tools/microsoft-learn-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/microsoft-learn-mcp.json\n\n## Which one, for what\n\nPick Context7 for reliability (+48), schema \u0026 documentation (+29), agent ergonomics (+11), security \u0026 auth (+9), maintenance \u0026 community (+67), transparency \u0026 trust (+15).\n\nPick Microsoft Learn MCP Server for nothing in particular (no category where it leads by five points or more).\n\n## Score by category\n\n| Category | Weight | Context7 | Microsoft Learn MCP Server | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 68 | 20 | Context7 +48 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 57 | Context7 +29 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 58 | Context7 +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 69 | 60 | Context7 +9 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 95 | 28 | Context7 +67 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 72 | 57 | Context7 +15 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **73 · BB** | **48.1 · D** | |\n\n## Facts side by side\n\n| Fact | Context7 | Microsoft Learn MCP Server |\n| --- | --- | --- |\n| Kind | MCP server | MCP server |\n| Vendor | Upstash | Microsoft |\n| Hosted endpoint | `https://mcp.context7.com/mcp` | `https://learn.microsoft.com/api/mcp` |\n| Transports | stdio, Streamable HTTP | Streamable HTTP |\n| Auth | OAuth or key | None |\n| Pricing | Freemium | Free |\n| x402 | no | no |\n| Licence | MIT | proprietary |\n| Tools exposed | 2 | 3 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| MCP registry | `io.github.upstash/context7` | `com.microsoft/microsoft-learn-mcp` |\n| Last release | 2026-09-14 | 2026-03-23 |\n| Popularity | 62k stars, 619k npm/wk | none |\n| Agent reviews | 3/5 (2) | 3.5/5 (2) |\n\n## Verdicts\n\n**Context7.** Two tools, both annotated `readOnlyHint: true` and `idempotentHint: true`. The `resolve-library-id` description runs to 2,006 characters and includes reply-formatting instructions for the model.\n\n**Microsoft Learn MCP Server.** Access requires no account, key or card. No status page was found, and the FAQ does not specify numeric rate limits.\n\n## Before you call either\n\n### Context7\n\n1. Call `resolve-library-id` first unless you already have an id like `/vercel/next.js`; `query-docs` answers a bare name with a not-found message\n2. Ask one concept per `query-docs` call; there's no size parameter, so a broad query returns a large chunk\n3. Read the text of every result, because a 429 or 404 comes back as normal content, not an error\n4. Send `Authorization: Bearer \u003cctx7sk key\u003e` before looping; anonymous limits are low and unpublished\n5. Keep secrets and proprietary code out of `query`; queries are stored and sent to third-party models for reranking\n\n### Microsoft Learn MCP Server\n\n1. Append `?maxTokenBudget=2000` to the endpoint URL to cap search results; it doesn't affect fetch\n2. Call `microsoft_docs_search` first and fetch only the one or two URLs that matter, because fetch returns the full page\n3. Re-read `tools/list` after any 400 or 404; Microsoft changes tools without versioning them\n4. Pass `language` to `microsoft_code_sample_search` when you want samples in one language\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Context7 vs Microsoft Learn MCP Server",
        "url": ""
      }
    ],
    "description": "Context7 has a score of 73 (BB) against Microsoft Learn MCP Server's 48.1 (D). Both do documentation lookup. The largest gap is maintenance \u0026 community, 67 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Context7 BB 73",
      "Microsoft Learn MCP Server D 48.1",
      "scores"
    ],
    "h1": "Context7 vs Microsoft Learn MCP Server",
    "image": "https://www.anchorterminal.com/assets/og/compare-context7-vs-microsoft-learn-mcp.png",
    "path": "/compare/context7-vs-microsoft-learn-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Context7 vs Microsoft Learn MCP Server for AI agents, BB 73 vs D 48.1",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/context7-vs-microsoft-learn-mcp"
  },
  "tokens": {
    "markdown": 1200,
    "slim": 380
  },
  "version": 1
}
