已验证的 AgentReady.md 证书
签发于 sig: 5e245ab15881e258 验证 →

已分析URL

Https://mcpdir.net

分析另一个URL

AI-Ready评分

76 / B

良好

/ 100

Token节省量

HTML Token 17.924
Markdown Token 85
节省 100%

评分详情

语义化HTML 85/100
内容效率 70/100
AI可发现性 45/100
结构化数据 100/100
可访问性 100/100

新兴协议

已检测到 0/3

AI代理查找的well-known端点。检测到意味着代理可以自动发现并连接到您的服务。

  • OAuth Discovery RFC 8414
    /.well-known/oauth-authorization-server
  • MCP Server Card Anthropic
    /.well-known/mcp.json
  • A2A Agent Card Google
    /.well-known/agent.json

您的页面实际内容与总HTML的比率较低。页面重量的大部分是标记、脚本或样式而非内容。

如何实施

将CSS移至外部样式表,删除内联样式,最小化JavaScript,确保HTML专注于内容结构。

您的网站不支持Markdown for Agents。此Cloudflare标准允许AI代理以markdown格式请求内容,减少约80%的令牌使用。

如何实施

实现以下一项或多项:(1) 使用markdown内容响应Accept: text/markdown。(2) 提供.md URL(例如/page.md)。(3) 添加<link rel="alternate" type="text/markdown">标签。(4) 添加Link HTTP标头用于markdown发现。

{\n res.setHeader('Vary', 'Accept');\n res.setHeader('Link', '; rel=\"alternate\"; type=\"text/markdown\"');\n if ((req.headers.accept || '').includes('text/markdown')) {\n res.type('text/markdown; charset=utf-8');\n return res.send(renderMarkdown('page'));\n }\n res.render('page');\n});"},{"id":"fastify","label":"Fastify","language":"javascript","filename":"server.js","code":"// Mechanisms 1 + 4: content negotiation + Link header\nfastify.get('/page', async (req, reply) => {\n reply.header('Vary', 'Accept');\n reply.header('Link', '; rel=\"alternate\"; type=\"text/markdown\"');\n if ((req.headers.accept || '').includes('text/markdown')) {\n return reply.type('text/markdown; charset=utf-8').send(renderMarkdown('page'));\n }\n return reply.view('/page.ejs');\n});"},{"id":"nextjs","label":"Next.js","language":"typescript","filename":"app/page/route.ts","code":"// Next.js App Router — Route Handler returning Markdown\nimport { NextRequest } from 'next/server';\nimport { renderMarkdown } from '@/lib/md';\nexport async function GET(req: NextRequest) {\n const accept = req.headers.get('accept') || '';\n if (accept.includes('text/markdown')) {\n return new Response(await renderMarkdown('page'), {\n headers: {\n 'Content-Type': 'text/markdown; charset=utf-8',\n 'Vary': 'Accept',\n },\n });\n }\n // Fall through to the page component\n return new Response(null, { status: 404 });\n}"},{"id":"wordpress","label":"WordPress","language":"php","filename":"functions.php","code":"post_content));\n exit;\n});"},{"id":"static","label":"Hugo / Jekyll / Astro","language":"txt","filename":"static/page.md","code":"# Mechanism 2: serve .md alongside .html\n# Hugo: place page.md in /static/ — built unchanged\n# Jekyll: drop page.md in /assets/ — copied as-is\n# Astro: src/pages/page.md.ts that exports a GET returning markdown\n\n# Then advertise with mechanism 3 in :\n# "}] }'>

未找到站点地图。站点地图帮助AI代理发现网站上的所有页面。

如何实施

创建列出所有公开页面的/sitemap.xml。大多数CMS平台可以自动生成。

未找到Content-Signal指令。这些指令告知AI代理如何使用您的内容(搜索索引、AI输入、训练数据)。推荐位置是robots.txt。

如何实施

将Content-Signal添加到您的robots.txt:User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no。也可以作为markdown响应的HTTP标头添加。

{\n res.setHeader('Content-Signal', 'search=yes, ai-input=yes, ai-train=no');\n next();\n});\n\n// Fastify\nfastify.addHook('onSend', (request, reply, payload, done) => {\n reply.header('Content-Signal', 'search=yes, ai-input=yes, ai-train=no');\n done();\n});"}] }'>

您的页面大量依赖<div>元素。<section>、<nav>、<header>、<footer>和<aside>等语义元素为AI代理提供有意义的结构。

如何实施

将通用<div>容器替换为适当的语义元素。对主题分组使用<section>,导航使用<nav>,页面/区块的头部和底部使用<header>/<footer>。

Markdown Token: 85
© 2026 MCPdir.net. Built for discovering and comparing MCP servers.

Data sourced from MCP Registry, PulseMCP, Docker MCP Catalog & community

Project in development by [Color Vivo](https://colorvivo.com/) & [David Carrero](https://carrero.es/). Hosted on Cloudflare Pages.

Made with ❤️ from Madrid and Herencia (Ciudad Real) — Spain.
The multilingual MCP server directory | MCPdir

[![MCPdir — MCP Server Directory](https://mcpdir.net/logo.png)](https://mcpdir.net/)

🇬🇧 [🇪🇸](https://mcpdir.net/es/ "Español")

# Find the right MCP server for your AI tools

Discover, compare and install MCP servers. The open directory with original editorial content in English and Spanish.

3147 servers · 17 categories · 2 languages

## Featured

[

### AWS MCP Servers

by AWS Labs

Official AWS MCP servers for documentation, infrastructure, containers, and serverless

⭐ 8.3k 📅 1mo ago 📦 Python

Python Intermediate Self-hostable

🍎🐧🪟

](https://mcpdir.net/s/aws-mcp/)[

### Blender MCP

by ahujasid

Prompt-assisted 3D modeling — connect Blender to AI through MCP for scene creation and manipulation

⭐ 17.4k 📅 1mo ago 📦 Python

Python Intermediate Self-hostable

🍎🐧🪟

](https://mcpdir.net/s/blender-mcp/)[

### Chrome DevTools MCP

by dinesh-nalla-se

Give your AI agent full access to Chrome DevTools

📅 1mo ago 📦 Node.js

Node.js Beginner Self-hostable

🍎🐧🪟

](https://mcpdir.net/s/chrome-devtools-mcp/)[

### Context7 MCP

by Upstash

Up-to-date, version-specific code documentation for any library — right in your AI assistant

⭐ 47.2k 📅 1mo ago 📦 Node.js

Node.js Beginner

🍎🐧🪟

](https://mcpdir.net/s/context7-mcp/)[

### Firecrawl

by Mendable

The Web Data API for AI — turn entire websites into LLM-ready markdown or structured data

⭐ 86.7k 📅 1mo ago 📦 Node.js

Node.js Beginner Self-hostable

🍎🐧🪟

](https://mcpdir.net/s/firecrawl/)[

### GitHub MCP Server

by GitHub

GitHub's official MCP server — manage repos, issues, PRs, Actions, and security from any AI tool

⭐ 27.3k 📅 1mo ago 📦 Docker

Docker Beginner Self-hostable Docker

🍎🐧🪟

](https://mcpdir.net/s/github-mcp-server/)[

### GitHub MCP

by anthropics

Turn your AI coding agent into a full-powered GitHub collaborator

⭐ 5.2k 👁 320k 📅 1mo ago 📦 Node.js

Node.js Beginner Self-hostable

🍎🐧🪟

](https://mcpdir.net/s/github-mcp/)[

### MCP Reference Servers

by Anthropic

Official MCP reference implementations from Anthropic — the most starred MCP project

⭐ 79.7k 📅 1mo ago 📦 Node.js

Node.js Beginner Self-hostable

🍎🐧🪟

](https://mcpdir.net/s/mcp-reference-servers/)[

### Notion MCP Server

by Notion

Official Notion MCP server for AI-powered workspace management

⭐ 4k 📅 1mo ago 📦 Node.js

Node.js Beginner Self-hostable Docker

🍎🐧🪟

](https://mcpdir.net/s/notion-mcp-server/)[

### Playwright MCP

by Microsoft

Browser automation for LLMs via accessibility snapshots, no vision models needed

⭐ 27.9k 📅 1mo ago 📦 Node.js

Node.js Beginner Self-hostable

🍎🐧🪟

](https://mcpdir.net/s/playwright-mcp/)

## Popular servers[See all →](https://mcpdir.net/servers/)

[

### Firecrawl

by Mendable

The Web Data API for AI — turn entire websites into LLM-ready markdown or structured data

⭐ 86.7k 📅 1mo ago 📦 Node.js

Node.js Beginner Self-hostable

🍎🐧🪟

](https://mcpdir.net/s/firecrawl/)[

### MCP Reference Servers

by Anthropic

Official MCP reference implementations from Anthropic — the most starred MCP project

⭐ 79.7k 📅 1mo ago 📦 Node.js

Node.js Beginner Self-hostable

🍎🐧🪟

](https://mcpdir.net/s/mcp-reference-servers/)[

### Slack MCP

by Anthropic

Official MCP reference server for Slack — send messages, read channels, and search conversations

⭐ 79.7k 📅 1mo ago 📦 Node.js

Node.js Beginner Self-hostable

🍎🐧🪟

](https://mcpdir.net/s/slack-mcp/)[

### Context7 MCP

by Upstash

Up-to-date, version-specific code documentation for any library — right in your AI assistant

⭐ 47.2k 📅 1mo ago 📦 Node.js

Node.js Beginner

🍎🐧🪟

](https://mcpdir.net/s/context7-mcp/)[

### Playwright MCP

by Microsoft

Browser automation for LLMs via accessibility snapshots, no vision models needed

⭐ 27.9k 📅 1mo ago 📦 Node.js

Node.js Beginner Self-hostable

🍎🐧🪟

](https://mcpdir.net/s/playwright-mcp/)[

### GitHub MCP Server

by GitHub

GitHub's official MCP server — manage repos, issues, PRs, Actions, and security from any AI tool

⭐ 27.3k 📅 1mo ago 📦 Docker

Docker Beginner Self-hostable Docker

🍎🐧🪟

](https://mcpdir.net/s/github-mcp-server/)

## Recently added

[

### Memory Graph MCP

by FlarelyLegal

Persistent shared memory for LLMs with knowledge graphs and semantic search

⭐ 2 📅 1mo ago 📦 Node.js

Node.js Advanced Self-hostable

🍎🐧🪟

](https://mcpdir.net/s/memory-graph-mcp/)[

### 1mcpserver

by particlefuture

MCP server — editorial content pending

⭐ 40 📅 3mo ago 📦 Python

Python Intermediate Self-hostable

🍎

](https://mcpdir.net/s/1mcpserver/)[

### 4everland-hosting-mcp

by 4everland

MCP server — editorial content pending

⭐ 2 📅 9mo ago 📦 Node.js

Node.js Intermediate Self-hostable

🍎🐧

](https://mcpdir.net/s/4everland-hosting-mcp/)[

### aaa-mcp

by ariffazil

MCP server — editorial content pending

⭐ 29 📅 1mo ago 📦 Python

Python Intermediate Self-hostable

🍎🐧🪟

](https://mcpdir.net/s/aaa-mcp/)

## Browse by category[See all →](https://mcpdir.net/categories/)

[🌐

Browser & Web

35 servers

](https://mcpdir.net/categories/browser/)[🗄️

Database

99 servers

](https://mcpdir.net/categories/database/)[📁

Filesystem

36 servers

](https://mcpdir.net/categories/filesystem/)[🔧

DevOps & CI/CD

142 servers

](https://mcpdir.net/categories/devops/)[🤖

AI & ML

623 servers

](https://mcpdir.net/categories/ai-ml/)[📊

Data & Analytics

27 servers

](https://mcpdir.net/categories/data/)[💬

Communication

19 servers

](https://mcpdir.net/categories/communication/)[📝

Productivity

34 servers

](https://mcpdir.net/categories/productivity/)[🔒

Security

25 servers

](https://mcpdir.net/categories/security/)[☁️

Cloud Providers

16 servers

](https://mcpdir.net/categories/cloud/)[🎨

Design & Media

33 servers

](https://mcpdir.net/categories/design/)[💰

Finance

41 servers

](https://mcpdir.net/categories/finance/)[🔍

Search & Discovery

60 servers

](https://mcpdir.net/categories/search/)[🏗️

Code & Development

1536 servers

](https://mcpdir.net/categories/code/)[🧪

Testing

18 servers

](https://mcpdir.net/categories/testing/)[📡

API & Integration

390 servers

](https://mcpdir.net/categories/api/)[🗺️

Maps & Location

13 servers

](https://mcpdir.net/categories/maps/)

## Recommended Services

Other tools from our team

[### SpyOnWeb

Find hidden connections between websites by correlating domains, Analytics, AdSense, nameservers and IPs.

spyonweb.net →](https://spyonweb.net/)[### AgentReady

Evaluate and improve your website compatibility with AI agents through scoring and analysis.

agentready.md →](https://agentready.md/)[### NSlookup

Minimal DNS and IP diagnostics suite with fast lookups over HTTPS, history and caching.

nslookup.network →](https://nslookup.network/)[### Spider

Check if search engines, AI crawlers and bots can access your site by analyzing robots.txt and headers.

spider.es →](https://spider.es/)[### Password.es

Generate secure, customizable passwords online with a built-in strength checker.

password.es/en/ →](https://password.es/en/)[### Time Tracking

Free online Pomodoro timer for deep focus sessions with a distraction-free interface.

timetracking.uk/ →](https://timetracking.uk/)

将此文件上传到服务器的/index.md,以便AI代理可以访问页面的干净版本。您也可以配置Accept: text/markdown内容协商以自动提供。

我们的建议

下载llms.txt
# MCPdir

> Discover, compare and install MCP servers for your AI tools

## Main
- [The multilingual MCP server directory](Https://mcpdir.net): Discover, compare and install MCP servers for your AI tools
- [About](https://mcpdir.net/about/)
- [Servers](https://mcpdir.net/servers/)
- [Categories](https://mcpdir.net/categories/)
- [🔥 Trending](https://mcpdir.net/trending/)
- [🇪🇸](https://mcpdir.net/es/)
- [RSS Feed](https://mcpdir.net/feed.xml)

完整llms.txt需要全域分析(即将推出)

将此文件上传到域名根目录的https://mcpdir.net/llms.txt。ChatGPT、Claude和Perplexity等AI代理会检查此文件以了解您的网站结构。

该网站已有llms.txt文件。

格式有效
# MCPdir — The multilingual MCP server directory

> MCPdir is an open directory of MCP (Model Context Protocol) servers. It helps developers discover, compare and install MCP servers for AI coding tools like Claude Code, Cursor, VS Code Copilot, Gemini CLI, and more.

## What is MCP?

MCP (Model Context Protocol) is an open standard that lets AI assistants connect to external tools and data sources. MCP servers expose capabilities (tools, resources, prompts) that AI clients can use.

## Site structure

- `/` — Homepage with featured and popular MCP servers
- `/servers/` — Full directory with search and filters
- `/s/{slug}/` — Individual MCP server detail page
- `/categories/` — Browse by category (browser, database, devops, etc.)
- `/categories/{slug}/` — Servers in a specific category
- `/es/` — Spanish version of all pages

## Data

Each MCP server entry includes:
- Canonical registry data (name, version, author, license)
- GitHub metrics (stars, downloads, last commit)
- Original editorial content (description, pros/cons, use cases, tips)
- Installation instructions for 8+ AI clients
- Client compatibility matrix
- Category, tags, difficulty level

## API

- `/feed.xml` — RSS feed with latest MCP servers
- `/sitemap-index.xml` — XML sitemap with hreflang

## Contact

Website: https://mcpdir.net

语义化HTML

使用article或main元素 (100/100)

Has <main>

正确的标题层级 (100/100)

Clean heading hierarchy

使用语义化HTML元素 (24/100)

11 semantic elements, 141 divs (ratio: 7%)

有意义的图片alt属性 (100/100)

2/2 images with meaningful alt text

较低的div嵌套深度 (100/100)

Avg div depth: 1.2, max: 3

内容效率

良好的Token减少比率 (100/100)

100% token reduction (HTML→Markdown)

良好的内容与噪声比 (0/100)

Content ratio: 0.5% (290 content chars / 60888 HTML bytes)

最少的内联样式 (100/100)

0/656 elements with inline styles (0.0%)

合理的页面重量 (100/100)

HTML size: 59KB

AI可发现性

有llms.txt文件 (100/100)

llms.txt exists and is valid

有robots.txt文件 (100/100)

robots.txt exists

robots.txt允许AI机器人 (100/100)

All major AI bots allowed

有sitemap.xml (0/100)

No sitemap found

Markdown for Agents支持 (0/100)
&#10007; Accept: text/markdown &#10007; .md URL &#10007; <link> tag &#10007; Link header
有Content-Signal(robots.txt或HTTP标头) (0/100)
&#10003; robots.txt &#10003; HTTP header &#10007; Policy

结构化数据

有Schema.org / JSON-LD (100/100)

JSON-LD found: WebSite, Organization

有Open Graph标签 (100/100)

All OG tags present

有meta描述 (100/100)

Meta description: 59 chars

有规范URL (100/100)

Canonical URL present

有lang属性 (100/100)

lang="en"

可访问性

无需JavaScript即可获取内容 (100/100)

Content available without JavaScript

合理的页面大小 (100/100)

Page size: 59KB

内容在HTML中位置靠前 (100/100)

Main content starts at 11% of HTML

{
  "url": "Https://mcpdir.net",
  "timestamp": 1776589460527,
  "fetch": {
    "mode": "simple",
    "timeMs": 63,
    "htmlSizeBytes": 60888,
    "supportsMarkdown": false,
    "markdownAgents": {
      "contentNegotiation": false,
      "mdUrl": {
        "found": false,
        "url": null
      },
      "linkTag": {
        "found": false,
        "url": null
      },
      "linkHeader": {
        "found": false,
        "url": null
      },
      "responseHeaders": {
        "contentSignal": null,
        "xMarkdownTokens": null,
        "vary": null
      },
      "frontmatter": {
        "present": false,
        "fields": [],
        "level": "none"
      },
      "level": "none"
    },
    "statusCode": 200
  },
  "extraction": {
    "title": "The multilingual MCP server directory",
    "excerpt": "Discover, compare and install MCP servers for your AI tools",
    "byline": null,
    "siteName": "MCPdir",
    "lang": "en",
    "contentLength": 290,
    "metadata": {
      "description": "Discover, compare and install MCP servers for your AI tools",
      "ogTitle": "The multilingual MCP server directory",
      "ogDescription": "Discover, compare and install MCP servers for your AI tools",
      "ogImage": "https://mcpdir.net/og-cover.png",
      "ogType": "website",
      "canonical": "https://mcpdir.net/",
      "lang": "en",
      "schemas": [
        {
          "@context": "https://schema.org",
          "@type": "WebSite",
          "name": "MCPdir",
          "url": "https://mcpdir.net",
          "potentialAction": {
            "@type": "SearchAction",
            "target": {
              "@type": "EntryPoint",
              "urlTemplate": "https://mcpdir.net/servers/?q={search_term_string}"
            },
            "query-input": "required name=search_term_string"
          }
        },
        {
          "@context": "https://schema.org",
          "@type": "Organization",
          "name": "MCPdir",
          "url": "https://mcpdir.net",
          "logo": "https://mcpdir.net/og-cover.png",
          "sameAs": [
            "https://github.com/dcarrero/MCPdir"
          ]
        }
      ],
      "robotsMeta": null,
      "author": null,
      "generator": "Astro v5.17.3",
      "markdownAlternateHref": null
    }
  },
  "markdown": "© 2026 MCPdir.net. Built for discovering and comparing MCP servers.\n\nData sourced from MCP Registry, PulseMCP, Docker MCP Catalog & community\n\nProject in development by [Color Vivo](https://colorvivo.com/) & [David Carrero](https://carrero.es/). Hosted on Cloudflare Pages.\n\nMade with ❤️ from Madrid and Herencia (Ciudad Real) — Spain.\n",
  "fullPageMarkdown": "The multilingual MCP server directory | MCPdir\n\n[![MCPdir — MCP Server Directory](https://mcpdir.net/logo.png)](https://mcpdir.net/)\n\n🇬🇧 [🇪🇸](https://mcpdir.net/es/ \"Español\")\n\n# Find the right MCP server for your AI tools\n\nDiscover, compare and install MCP servers. The open directory with original editorial content in English and Spanish.\n\n3147 servers · 17 categories · 2 languages\n\n## Featured\n\n[\n\n### AWS MCP Servers\n\nby AWS Labs\n\nOfficial AWS MCP servers for documentation, infrastructure, containers, and serverless\n\n⭐ 8.3k 📅 1mo ago 📦 Python\n\nPython Intermediate Self-hostable\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/aws-mcp/)[\n\n### Blender MCP\n\nby ahujasid\n\nPrompt-assisted 3D modeling — connect Blender to AI through MCP for scene creation and manipulation\n\n⭐ 17.4k 📅 1mo ago 📦 Python\n\nPython Intermediate Self-hostable\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/blender-mcp/)[\n\n### Chrome DevTools MCP\n\nby dinesh-nalla-se\n\nGive your AI agent full access to Chrome DevTools\n\n📅 1mo ago 📦 Node.js\n\nNode.js Beginner Self-hostable\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/chrome-devtools-mcp/)[\n\n### Context7 MCP\n\nby Upstash\n\nUp-to-date, version-specific code documentation for any library — right in your AI assistant\n\n⭐ 47.2k 📅 1mo ago 📦 Node.js\n\nNode.js Beginner\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/context7-mcp/)[\n\n### Firecrawl\n\nby Mendable\n\nThe Web Data API for AI — turn entire websites into LLM-ready markdown or structured data\n\n⭐ 86.7k 📅 1mo ago 📦 Node.js\n\nNode.js Beginner Self-hostable\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/firecrawl/)[\n\n### GitHub MCP Server\n\nby GitHub\n\nGitHub's official MCP server — manage repos, issues, PRs, Actions, and security from any AI tool\n\n⭐ 27.3k 📅 1mo ago 📦 Docker\n\nDocker Beginner Self-hostable Docker\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/github-mcp-server/)[\n\n### GitHub MCP\n\nby anthropics\n\nTurn your AI coding agent into a full-powered GitHub collaborator\n\n⭐ 5.2k 👁 320k 📅 1mo ago 📦 Node.js\n\nNode.js Beginner Self-hostable\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/github-mcp/)[\n\n### MCP Reference Servers\n\nby Anthropic\n\nOfficial MCP reference implementations from Anthropic — the most starred MCP project\n\n⭐ 79.7k 📅 1mo ago 📦 Node.js\n\nNode.js Beginner Self-hostable\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/mcp-reference-servers/)[\n\n### Notion MCP Server\n\nby Notion\n\nOfficial Notion MCP server for AI-powered workspace management\n\n⭐ 4k 📅 1mo ago 📦 Node.js\n\nNode.js Beginner Self-hostable Docker\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/notion-mcp-server/)[\n\n### Playwright MCP\n\nby Microsoft\n\nBrowser automation for LLMs via accessibility snapshots, no vision models needed\n\n⭐ 27.9k 📅 1mo ago 📦 Node.js\n\nNode.js Beginner Self-hostable\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/playwright-mcp/)\n\n## Popular servers[See all →](https://mcpdir.net/servers/)\n\n[\n\n### Firecrawl\n\nby Mendable\n\nThe Web Data API for AI — turn entire websites into LLM-ready markdown or structured data\n\n⭐ 86.7k 📅 1mo ago 📦 Node.js\n\nNode.js Beginner Self-hostable\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/firecrawl/)[\n\n### MCP Reference Servers\n\nby Anthropic\n\nOfficial MCP reference implementations from Anthropic — the most starred MCP project\n\n⭐ 79.7k 📅 1mo ago 📦 Node.js\n\nNode.js Beginner Self-hostable\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/mcp-reference-servers/)[\n\n### Slack MCP\n\nby Anthropic\n\nOfficial MCP reference server for Slack — send messages, read channels, and search conversations\n\n⭐ 79.7k 📅 1mo ago 📦 Node.js\n\nNode.js Beginner Self-hostable\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/slack-mcp/)[\n\n### Context7 MCP\n\nby Upstash\n\nUp-to-date, version-specific code documentation for any library — right in your AI assistant\n\n⭐ 47.2k 📅 1mo ago 📦 Node.js\n\nNode.js Beginner\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/context7-mcp/)[\n\n### Playwright MCP\n\nby Microsoft\n\nBrowser automation for LLMs via accessibility snapshots, no vision models needed\n\n⭐ 27.9k 📅 1mo ago 📦 Node.js\n\nNode.js Beginner Self-hostable\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/playwright-mcp/)[\n\n### GitHub MCP Server\n\nby GitHub\n\nGitHub's official MCP server — manage repos, issues, PRs, Actions, and security from any AI tool\n\n⭐ 27.3k 📅 1mo ago 📦 Docker\n\nDocker Beginner Self-hostable Docker\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/github-mcp-server/)\n\n## Recently added\n\n[\n\n### Memory Graph MCP\n\nby FlarelyLegal\n\nPersistent shared memory for LLMs with knowledge graphs and semantic search\n\n⭐ 2 📅 1mo ago 📦 Node.js\n\nNode.js Advanced Self-hostable\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/memory-graph-mcp/)[\n\n### 1mcpserver\n\nby particlefuture\n\nMCP server — editorial content pending\n\n⭐ 40 📅 3mo ago 📦 Python\n\nPython Intermediate Self-hostable\n\n🍎\n\n](https://mcpdir.net/s/1mcpserver/)[\n\n### 4everland-hosting-mcp\n\nby 4everland\n\nMCP server — editorial content pending\n\n⭐ 2 📅 9mo ago 📦 Node.js\n\nNode.js Intermediate Self-hostable\n\n🍎🐧\n\n](https://mcpdir.net/s/4everland-hosting-mcp/)[\n\n### aaa-mcp\n\nby ariffazil\n\nMCP server — editorial content pending\n\n⭐ 29 📅 1mo ago 📦 Python\n\nPython Intermediate Self-hostable\n\n🍎🐧🪟\n\n](https://mcpdir.net/s/aaa-mcp/)\n\n## Browse by category[See all →](https://mcpdir.net/categories/)\n\n[🌐\n\nBrowser & Web\n\n35 servers\n\n](https://mcpdir.net/categories/browser/)[🗄️\n\nDatabase\n\n99 servers\n\n](https://mcpdir.net/categories/database/)[📁\n\nFilesystem\n\n36 servers\n\n](https://mcpdir.net/categories/filesystem/)[🔧\n\nDevOps & CI/CD\n\n142 servers\n\n](https://mcpdir.net/categories/devops/)[🤖\n\nAI & ML\n\n623 servers\n\n](https://mcpdir.net/categories/ai-ml/)[📊\n\nData & Analytics\n\n27 servers\n\n](https://mcpdir.net/categories/data/)[💬\n\nCommunication\n\n19 servers\n\n](https://mcpdir.net/categories/communication/)[📝\n\nProductivity\n\n34 servers\n\n](https://mcpdir.net/categories/productivity/)[🔒\n\nSecurity\n\n25 servers\n\n](https://mcpdir.net/categories/security/)[☁️\n\nCloud Providers\n\n16 servers\n\n](https://mcpdir.net/categories/cloud/)[🎨\n\nDesign & Media\n\n33 servers\n\n](https://mcpdir.net/categories/design/)[💰\n\nFinance\n\n41 servers\n\n](https://mcpdir.net/categories/finance/)[🔍\n\nSearch & Discovery\n\n60 servers\n\n](https://mcpdir.net/categories/search/)[🏗️\n\nCode & Development\n\n1536 servers\n\n](https://mcpdir.net/categories/code/)[🧪\n\nTesting\n\n18 servers\n\n](https://mcpdir.net/categories/testing/)[📡\n\nAPI & Integration\n\n390 servers\n\n](https://mcpdir.net/categories/api/)[🗺️\n\nMaps & Location\n\n13 servers\n\n](https://mcpdir.net/categories/maps/)\n\n## Recommended Services\n\nOther tools from our team\n\n[### SpyOnWeb\n\nFind hidden connections between websites by correlating domains, Analytics, AdSense, nameservers and IPs.\n\nspyonweb.net →](https://spyonweb.net/)[### AgentReady\n\nEvaluate and improve your website compatibility with AI agents through scoring and analysis.\n\nagentready.md →](https://agentready.md/)[### NSlookup\n\nMinimal DNS and IP diagnostics suite with fast lookups over HTTPS, history and caching.\n\nnslookup.network →](https://nslookup.network/)[### Spider\n\nCheck if search engines, AI crawlers and bots can access your site by analyzing robots.txt and headers.\n\nspider.es →](https://spider.es/)[### Password.es\n\nGenerate secure, customizable passwords online with a built-in strength checker.\n\npassword.es/en/ →](https://password.es/en/)[### Time Tracking\n\nFree online Pomodoro timer for deep focus sessions with a distraction-free interface.\n\ntimetracking.uk/ →](https://timetracking.uk/)\n",
  "markdownStats": {
    "images": 0,
    "links": 2,
    "tables": 0,
    "codeBlocks": 0,
    "headings": 0
  },
  "tokens": {
    "htmlTokens": 17924,
    "markdownTokens": 85,
    "reduction": 17839,
    "reductionPercent": 100
  },
  "score": {
    "score": 76,
    "grade": "B",
    "dimensions": {
      "semanticHtml": {
        "score": 85,
        "weight": 20,
        "grade": "B",
        "checks": {
          "uses_article_or_main": {
            "score": 100,
            "weight": 20,
            "details": "Has <main>"
          },
          "proper_heading_hierarchy": {
            "score": 100,
            "weight": 25,
            "details": "Clean heading hierarchy"
          },
          "semantic_elements": {
            "score": 24,
            "weight": 20,
            "details": "11 semantic elements, 141 divs (ratio: 7%)"
          },
          "meaningful_alt_texts": {
            "score": 100,
            "weight": 15,
            "details": "2/2 images with meaningful alt text"
          },
          "low_div_nesting": {
            "score": 100,
            "weight": 20,
            "details": "Avg div depth: 1.2, max: 3"
          }
        }
      },
      "contentEfficiency": {
        "score": 70,
        "weight": 25,
        "grade": "C",
        "checks": {
          "token_reduction_ratio": {
            "score": 100,
            "weight": 40,
            "details": "100% token reduction (HTML→Markdown)"
          },
          "content_to_noise_ratio": {
            "score": 0,
            "weight": 30,
            "details": "Content ratio: 0.5% (290 content chars / 60888 HTML bytes)"
          },
          "minimal_inline_styles": {
            "score": 100,
            "weight": 15,
            "details": "0/656 elements with inline styles (0.0%)"
          },
          "reasonable_page_weight": {
            "score": 100,
            "weight": 15,
            "details": "HTML size: 59KB"
          }
        }
      },
      "aiDiscoverability": {
        "score": 45,
        "weight": 25,
        "grade": "D",
        "checks": {
          "has_llms_txt": {
            "score": 100,
            "weight": 20,
            "details": "llms.txt exists and is valid"
          },
          "has_robots_txt": {
            "score": 100,
            "weight": 10,
            "details": "robots.txt exists"
          },
          "robots_allows_ai_bots": {
            "score": 100,
            "weight": 15,
            "details": "All major AI bots allowed"
          },
          "has_sitemap": {
            "score": 0,
            "weight": 10,
            "details": "No sitemap found"
          },
          "supports_markdown_negotiation": {
            "score": 0,
            "weight": 25,
            "details": "No Markdown for Agents support detected"
          },
          "has_content_signals": {
            "score": 0,
            "weight": 20,
            "details": "No Content-Signal found (robots.txt or HTTP headers)"
          }
        }
      },
      "structuredData": {
        "score": 100,
        "weight": 15,
        "grade": "A",
        "checks": {
          "has_schema_org": {
            "score": 100,
            "weight": 30,
            "details": "JSON-LD found: WebSite, Organization"
          },
          "has_open_graph": {
            "score": 100,
            "weight": 25,
            "details": "All OG tags present"
          },
          "has_meta_description": {
            "score": 100,
            "weight": 20,
            "details": "Meta description: 59 chars"
          },
          "has_canonical_url": {
            "score": 100,
            "weight": 15,
            "details": "Canonical URL present"
          },
          "has_lang_attribute": {
            "score": 100,
            "weight": 10,
            "details": "lang=\"en\""
          }
        }
      },
      "accessibility": {
        "score": 100,
        "weight": 15,
        "grade": "A",
        "checks": {
          "content_without_js": {
            "score": 100,
            "weight": 40,
            "details": "Content available without JavaScript"
          },
          "reasonable_page_size": {
            "score": 100,
            "weight": 30,
            "details": "Page size: 59KB"
          },
          "fast_content_position": {
            "score": 100,
            "weight": 30,
            "details": "Main content starts at 11% of HTML"
          }
        }
      }
    }
  },
  "recommendations": [
    {
      "id": "improve_content_ratio",
      "priority": "critical",
      "category": "contentEfficiency",
      "titleKey": "rec.improve_content_ratio.title",
      "descriptionKey": "rec.improve_content_ratio.description",
      "howToKey": "rec.improve_content_ratio.howto",
      "effort": "moderate",
      "estimatedImpact": 6,
      "checkScore": 0,
      "checkDetails": "Content ratio: 0.5% (290 content chars / 60888 HTML bytes)"
    },
    {
      "id": "add_markdown_negotiation",
      "priority": "critical",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_markdown_negotiation.title",
      "descriptionKey": "rec.add_markdown_negotiation.description",
      "howToKey": "rec.add_markdown_negotiation.howto",
      "effort": "significant",
      "estimatedImpact": 6,
      "checkScore": 0,
      "checkDetails": "No Markdown for Agents support detected"
    },
    {
      "id": "add_sitemap",
      "priority": "critical",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_sitemap.title",
      "descriptionKey": "rec.add_sitemap.description",
      "howToKey": "rec.add_sitemap.howto",
      "effort": "quick-win",
      "estimatedImpact": 5,
      "checkScore": 0,
      "checkDetails": "No sitemap found"
    },
    {
      "id": "add_content_signals",
      "priority": "critical",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_content_signals.title",
      "descriptionKey": "rec.add_content_signals.description",
      "howToKey": "rec.add_content_signals.howto",
      "effort": "quick-win",
      "estimatedImpact": 5,
      "checkScore": 0,
      "checkDetails": "No Content-Signal found (robots.txt or HTTP headers)"
    },
    {
      "id": "add_semantic_elements",
      "priority": "high",
      "category": "semanticHtml",
      "titleKey": "rec.add_semantic_elements.title",
      "descriptionKey": "rec.add_semantic_elements.description",
      "howToKey": "rec.add_semantic_elements.howto",
      "effort": "moderate",
      "estimatedImpact": 5,
      "checkScore": 24,
      "checkDetails": "11 semantic elements, 141 divs (ratio: 7%)"
    }
  ],
  "llmsTxtPreview": "# MCPdir\n\n> Discover, compare and install MCP servers for your AI tools\n\n## Main\n- [The multilingual MCP server directory](Https://mcpdir.net): Discover, compare and install MCP servers for your AI tools\n- [About](https://mcpdir.net/about/)\n- [Servers](https://mcpdir.net/servers/)\n- [Categories](https://mcpdir.net/categories/)\n- [🔥 Trending](https://mcpdir.net/trending/)\n- [🇪🇸](https://mcpdir.net/es/)\n- [RSS Feed](https://mcpdir.net/feed.xml)\n\n",
  "llmsTxtExisting": "# MCPdir — The multilingual MCP server directory\n\n> MCPdir is an open directory of MCP (Model Context Protocol) servers. It helps developers discover, compare and install MCP servers for AI coding tools like Claude Code, Cursor, VS Code Copilot, Gemini CLI, and more.\n\n## What is MCP?\n\nMCP (Model Context Protocol) is an open standard that lets AI assistants connect to external tools and data sources. MCP servers expose capabilities (tools, resources, prompts) that AI clients can use.\n\n## Site structure\n\n- `/` — Homepage with featured and popular MCP servers\n- `/servers/` — Full directory with search and filters\n- `/s/{slug}/` — Individual MCP server detail page\n- `/categories/` — Browse by category (browser, database, devops, etc.)\n- `/categories/{slug}/` — Servers in a specific category\n- `/es/` — Spanish version of all pages\n\n## Data\n\nEach MCP server entry includes:\n- Canonical registry data (name, version, author, license)\n- GitHub metrics (stars, downloads, last commit)\n- Original editorial content (description, pros/cons, use cases, tips)\n- Installation instructions for 8+ AI clients\n- Client compatibility matrix\n- Category, tags, difficulty level\n\n## API\n\n- `/feed.xml` — RSS feed with latest MCP servers\n- `/sitemap-index.xml` — XML sitemap with hreflang\n\n## Contact\n\nWebsite: https://mcpdir.net",
  "emergingProtocols": {
    "oauthDiscovery": {
      "exists": false,
      "url": "https://mcpdir.net/.well-known/oauth-authorization-server"
    },
    "mcpServerCard": {
      "exists": false,
      "url": "https://mcpdir.net/.well-known/mcp.json"
    },
    "a2aAgentCard": {
      "exists": false,
      "url": "https://mcpdir.net/.well-known/agent.json"
    },
    "count": 0
  },
  "snippets": [
    {
      "id": "add_sitemap",
      "title": "Create /sitemap.xml",
      "description": "A sitemap helps AI agents discover all your pages. Most CMS platforms generate one automatically.",
      "language": "xml",
      "code": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n  <url>\n    <loc>Https://mcpdir.net</loc>\n    <lastmod>2026-04-19</lastmod>\n  </url>\n</urlset>",
      "filename": "/sitemap.xml"
    },
    {
      "id": "add_content_signals",
      "title": "Add Content-Signal directives",
      "description": "Content-Signal tells AI agents how they may use your content. The canonical location is robots.txt, but you can also expose it as an HTTP header from any stack.",
      "language": "txt",
      "code": "User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no",
      "filename": "/robots.txt",
      "stacks": [
        {
          "id": "robots",
          "label": "robots.txt",
          "language": "txt",
          "filename": "/robots.txt",
          "code": "User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no"
        },
        {
          "id": "nginx",
          "label": "Nginx",
          "language": "nginx",
          "filename": "server block",
          "code": "# Inside your server { } block:\nadd_header Content-Signal \"search=yes, ai-input=yes, ai-train=no\" always;"
        },
        {
          "id": "apache",
          "label": "Apache",
          "language": "apache",
          "filename": ".htaccess",
          "code": "# In .htaccess (or VirtualHost):\nHeader set Content-Signal \"search=yes, ai-input=yes, ai-train=no\""
        },
        {
          "id": "wordpress",
          "label": "WordPress",
          "language": "php",
          "filename": "functions.php",
          "code": "<?php\n// In your theme's functions.php or a small mu-plugin\nadd_action('send_headers', function () {\n    header('Content-Signal: search=yes, ai-input=yes, ai-train=no');\n});\n\n// Optional: also append the directive to the dynamic robots.txt\nadd_filter('robots_txt', function ($output) {\n    return $output . \"\\nContent-Signal: search=yes, ai-input=yes, ai-train=no\\n\";\n}, 10, 1);"
        },
        {
          "id": "nextjs",
          "label": "Next.js",
          "language": "typescript",
          "filename": "middleware.ts",
          "code": "// middleware.ts (Next.js 13+ App Router or Pages Router)\nimport { NextResponse } from 'next/server';\nexport function middleware() {\n  const res = NextResponse.next();\n  res.headers.set(\n    'Content-Signal',\n    'search=yes, ai-input=yes, ai-train=no'\n  );\n  return res;\n}\nexport const config = { matcher: '/:path*' };"
        },
        {
          "id": "cloudflare",
          "label": "Cloudflare Workers",
          "language": "javascript",
          "filename": "worker.js",
          "code": "// Cloudflare Worker that proxies your origin and adds the header\nexport default {\n  async fetch(request, env, ctx) {\n    const res = await fetch(request);\n    const newRes = new Response(res.body, res);\n    newRes.headers.set(\n      'Content-Signal',\n      'search=yes, ai-input=yes, ai-train=no'\n    );\n    return newRes;\n  },\n};"
        },
        {
          "id": "express",
          "label": "Express / Fastify",
          "language": "javascript",
          "filename": "server.js",
          "code": "// Express\napp.use((req, res, next) => {\n  res.setHeader('Content-Signal', 'search=yes, ai-input=yes, ai-train=no');\n  next();\n});\n\n// Fastify\nfastify.addHook('onSend', (request, reply, payload, done) => {\n  reply.header('Content-Signal', 'search=yes, ai-input=yes, ai-train=no');\n  done();\n});"
        }
      ]
    },
    {
      "id": "add_markdown_negotiation",
      "title": "Support Markdown for Agents",
      "description": "Let AI agents request a clean Markdown version of any page via content negotiation, .md alternate URLs, link tags or Link headers.",
      "language": "html",
      "code": "<!-- Mechanism 3: link tag advertising the .md alternate -->\n<link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">",
      "filename": "<head>",
      "stacks": [
        {
          "id": "html",
          "label": "HTML <head>",
          "language": "html",
          "filename": "<head>",
          "code": "<!-- Mechanism 3: link tag advertising the .md alternate -->\n<link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">"
        },
        {
          "id": "express",
          "label": "Express",
          "language": "javascript",
          "filename": "server.js",
          "code": "// Mechanisms 1 + 4: content negotiation + Link header\napp.get('/page', (req, res) => {\n  res.setHeader('Vary', 'Accept');\n  res.setHeader('Link', '</page.md>; rel=\"alternate\"; type=\"text/markdown\"');\n  if ((req.headers.accept || '').includes('text/markdown')) {\n    res.type('text/markdown; charset=utf-8');\n    return res.send(renderMarkdown('page'));\n  }\n  res.render('page');\n});"
        },
        {
          "id": "fastify",
          "label": "Fastify",
          "language": "javascript",
          "filename": "server.js",
          "code": "// Mechanisms 1 + 4: content negotiation + Link header\nfastify.get('/page', async (req, reply) => {\n  reply.header('Vary', 'Accept');\n  reply.header('Link', '</page.md>; rel=\"alternate\"; type=\"text/markdown\"');\n  if ((req.headers.accept || '').includes('text/markdown')) {\n    return reply.type('text/markdown; charset=utf-8').send(renderMarkdown('page'));\n  }\n  return reply.view('/page.ejs');\n});"
        },
        {
          "id": "nextjs",
          "label": "Next.js",
          "language": "typescript",
          "filename": "app/page/route.ts",
          "code": "// Next.js App Router — Route Handler returning Markdown\nimport { NextRequest } from 'next/server';\nimport { renderMarkdown } from '@/lib/md';\nexport async function GET(req: NextRequest) {\n  const accept = req.headers.get('accept') || '';\n  if (accept.includes('text/markdown')) {\n    return new Response(await renderMarkdown('page'), {\n      headers: {\n        'Content-Type': 'text/markdown; charset=utf-8',\n        'Vary': 'Accept',\n      },\n    });\n  }\n  // Fall through to the page component\n  return new Response(null, { status: 404 });\n}"
        },
        {
          "id": "wordpress",
          "label": "WordPress",
          "language": "php",
          "filename": "functions.php",
          "code": "<?php\n// Mechanism 1: respond to Accept: text/markdown on the same URL\nadd_action('template_redirect', function () {\n    if (!is_singular()) return;\n    $accept = $_SERVER['HTTP_ACCEPT'] ?? '';\n    if (strpos($accept, 'text/markdown') === false) return;\n    header('Content-Type: text/markdown; charset=utf-8');\n    header('Vary: Accept');\n    $post = get_queried_object();\n    echo \"# \" . get_the_title($post) . \"\\n\\n\";\n    echo wp_strip_all_tags(apply_filters('the_content', $post->post_content));\n    exit;\n});"
        },
        {
          "id": "static",
          "label": "Hugo / Jekyll / Astro",
          "language": "txt",
          "filename": "static/page.md",
          "code": "# Mechanism 2: serve .md alongside .html\n# Hugo: place page.md in /static/ — built unchanged\n# Jekyll: drop page.md in /assets/ — copied as-is\n# Astro: src/pages/page.md.ts that exports a GET returning markdown\n\n# Then advertise with mechanism 3 in <head>:\n#   <link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">"
        }
      ]
    }
  ]
}

使用我们的API以编程方式获取此内容(即将推出)

此JSON供内部使用 — 与Markdown和llms.txt文件不同,它不适合上传到您的网站。将其保存为基准值以跟踪评分变化,与开发团队共享,或集成到CI/CD流水线中。

分享您的结果

Twitter LinkedIn

嵌入您的徽章

将此徽章添加到您的网站。当您的 AI 就绪评分发生变化时,它会自动更新。

AgentReady.md score for mcpdir.net
Script 推荐
<script src="https://agentready.md/badge.js" data-id="5c2f89b5-8355-4fcc-b327-fdb901fc1cc8" data-domain="mcpdir.net"></script>
Markdown
[![AgentReady.md score for mcpdir.net](https://agentready.md/badge/mcpdir.net.svg)](https://agentready.md/zh/r/5c2f89b5-8355-4fcc-b327-fdb901fc1cc8)

即将推出:全域分析

爬取您的整个域名,生成llms.txt,并随时间监控您的AI就绪度评分。加入等候名单以获取通知。

您已加入名单!服务上线时我们会通知您。