{
  "issues": [
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3349",
      "id": 3958113787,
      "node_id": "I_kwDONRaG_87r7AX7",
      "number": 3349,
      "title": "Add d3p — agent-to-agent services on Lightning Network",
      "user": {
        "login": "awkie1",
        "id": 31894700,
        "node_id": "MDQ6VXNlcjMxODk0NzAw",
        "avatar_url": "https://avatars.githubusercontent.com/u/31894700?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/awkie1",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-18T14:22:41Z",
      "updated_at": "2026-02-18T14:22:41Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## d3p MCP Server\n\nGives Claude access to 10 AI services on the d3p agent-to-agent protocol, paid via Lightning Network micropayments.\n\n### 15 tools exposed:\n- 10 service tools (btc-price, search, weather, sentiment, hallucination detection, etc.)\n- Discovery, compatibility checking, pipeline execution, reputation, pricing\n\n### Install:\npip install d3p-mcp-server\n\n### Repo:\nhttps://github.com/awkie1/d3p-mcp-server\n\n### Protocol:\nhttps://github.com/awkie1/d3p-protocol\n\n### Live demo:\nhttps://github.com/awkie1/d3p-demo",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3349/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3347",
      "id": 3951976964,
      "node_id": "I_kwDONRaG_87rjmIE",
      "number": 3347,
      "title": "Remove outdated GitLab references after server archival",
      "user": {
        "login": "wolkenschieber",
        "id": 5024238,
        "node_id": "MDQ6VXNlcjUwMjQyMzg=",
        "avatar_url": "https://avatars.githubusercontent.com/u/5024238?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/wolkenschieber",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-17T10:15:56Z",
      "updated_at": "2026-02-17T10:15:56Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "The GitLab server is still referenced in the README and on [mcp.so](https://mcp.so/server/gitlab/modelcontextprotocol\n), but it was removed in commit d53d6cc75c9ff1957f76c6b97c1ca74771af347e (\"Archive unmaintained servers\").\n\n-> Remove all references to the archived GitLab server from the README.\n-> Update or remove the corresponding listing on mcp.so to avoid confusion and broken expectations.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3347/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3346",
      "id": 3951718347,
      "node_id": "I_kwDONRaG_87rim_L",
      "number": 3346,
      "title": "I want to publish my youtube transcripts mcp server",
      "user": {
        "login": "Afaqak",
        "id": 75029026,
        "node_id": "MDQ6VXNlcjc1MDI5MDI2",
        "avatar_url": "https://avatars.githubusercontent.com/u/75029026?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Afaqak",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-17T09:25:07Z",
      "updated_at": "2026-02-17T09:25:07Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "https://youtubetranscript.dev/ \nso this is my application where we extract transcriptions from yt and also provide asr for videos with no caption \nand a couple of other cool features.\n\nthe mcp server\nhttps://github.com/Youtube-Transcript-Dev/youtube-transcript-mcp \n\nit has a couple of tools to help users with transcript work, so i want to publish it, help me out.\n\nThank you\nAfaq",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3346/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3345",
      "id": 3951320954,
      "node_id": "I_kwDONRaG_87rhF96",
      "number": 3345,
      "title": "[New Server] VOLO Private Aviation — AI-native private jet booking via WebMCP",
      "user": {
        "login": "weihermans",
        "id": 24504717,
        "node_id": "MDQ6VXNlcjI0NTA0NzE3",
        "avatar_url": "https://avatars.githubusercontent.com/u/24504717?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/weihermans",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-17T07:40:02Z",
      "updated_at": "2026-02-17T07:40:02Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Server Name:** VOLO Private Aviation\n**Server URL:** https://flyvolo.ai\n**Repository/Source:** WebMCP implementation at `https://flyvolo.ai/.well-known/webmcp.json`\n\n**Description:**\nThe world's first AI-native private aviation platform. 7 MCP tools for searching flights, comparing aircraft, estimating costs, and booking private jets. 500+ aircraft, 100+ destinations, 4 languages. No API key required for read operations.\n\n**Tools:**\n\n| Tool | Description | Read-only |\n|------|-------------|-----------|\n| `search_flights` | Search private jet options between cities with estimated prices | Yes |\n| `get_aircraft` | Query fleet details by category, capacity, or range | Yes |\n| `compare_aircraft` | Side-by-side comparison of 2-3 aircraft | Yes |\n| `get_destinations` | Browse 100+ luxury destinations by region | Yes |\n| `get_flight_time` | Calculate flight times between cities | Yes |\n| `estimate_cost` | Estimate charter costs for any route | Yes |\n| `request_quote` | Submit quote request (user confirmation required) | No |\n\n**Discovery Endpoints:**\n- WebMCP: `https://flyvolo.ai/.well-known/webmcp.json`\n- Agent Discovery: `https://flyvolo.ai/api/agent/discover`\n- OpenAI Plugin: `https://flyvolo.ai/.well-known/ai-plugin.json`\n\n**Auth:** None required for read operations. `request_quote` uses `client.requestUserInteraction()` for user confirmation.\n\n**Languages:** English, Chinese (中文), French, Spanish\n\n**Tech Stack:** Next.js 15, TypeScript, Prisma + PostgreSQL\n\n**Contact:** agents@flyvolo.ai",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3345/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3336",
      "id": 3943723245,
      "node_id": "I_kwDONRaG_87rEHDt",
      "number": 3336,
      "title": "Link to this repo in PyPi packages.",
      "user": {
        "login": "luckydonald",
        "id": 2737108,
        "node_id": "MDQ6VXNlcjI3MzcxMDg=",
        "avatar_url": "https://avatars.githubusercontent.com/u/2737108?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/luckydonald",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-15T10:19:50Z",
      "updated_at": "2026-02-15T10:19:50Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nThis repository is not linked to on the pypi package page.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n- For example: https://pypi.org/project/mcp-server-git/\n\n**Expected behavior**\n1. The PyPi metadata includes a link to the repo, favorably the specific subfolder.\n2. The README includes a link to the repo, favorably the specific subfolder.\n\n**Logs**\n—\n\n**Additional context**\n—\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3336/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3335",
      "id": 3942758410,
      "node_id": "I_kwDONRaG_87rAbgK",
      "number": 3335,
      "title": "New Server: TradeKix — Financial Market Data",
      "user": {
        "login": "jamesjohnfox",
        "id": 203586484,
        "node_id": "U_kgDODCJ7tA",
        "avatar_url": "https://avatars.githubusercontent.com/u/203586484?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jamesjohnfox",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-15T01:06:57Z",
      "updated_at": "2026-02-15T01:06:57Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Server: tradekix-mcp-server\n\n**What it does:**\nProvides financial market data to Claude and other MCP clients. 10 tools covering real-time market data designed for AI agent consumption.\n\n**Tools:**\n- `tradekix_market_overview` — Full market snapshot (indices, forex, events, alerts, news)\n- `tradekix_prices` — Stock & crypto price data\n- `tradekix_indices` — Major market indices by region\n- `tradekix_forex` — Forex exchange rates\n- `tradekix_earnings` — Earnings calendar\n- `tradekix_economic_events` — Economic events (FOMC, CPI, jobs)\n- `tradekix_congressional_trades` — Congressional stock trades with conflict-of-interest detection\n- `tradekix_sentiment` — Social media sentiment\n- `tradekix_tweets` — Curated financial tweets\n- `tradekix_news` — AI-curated financial news\n\n**Auth:** API Key via `TRADEKIX_API_KEY` env variable. Free developer tier: 100 calls/day.\n\n**npm:** [tradekix-mcp-server](https://www.npmjs.com/package/tradekix-mcp-server)\n**GitHub:** [TradekixAI/tradekix-mcp-server](https://github.com/TradekixAI/tradekix-mcp-server)\n**Website:** [tradekix.ai](https://www.tradekix.ai)\n\n**Install:**\n```bash\nnpx -y tradekix-mcp-server\n```\n\n**Claude Desktop config:**\n```json\n{\n  \"mcpServers\": {\n    \"tradekix\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"tradekix-mcp-server\"],\n      \"env\": {\n        \"TRADEKIX_API_KEY\": \"your_key_here\"\n      }\n    }\n  }\n}\n```\n\n**Get a free key:**\n```bash\ncurl -X POST https://tradekix-alpha.vercel.app/api/v1/connect \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"agent_name\": \"MyClaude\", \"email\": \"you@example.com\", \"source\": \"mcp\"}'\n```\n\nHappy to submit a PR if preferred. Thanks!",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3335/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3333",
      "id": 3942016344,
      "node_id": "I_kwDONRaG_87q9mVY",
      "number": 3333,
      "title": "[Community] OnlySwaps MCP Server - Multi-Chain DEX Aggregator",
      "user": {
        "login": "0xKoaj",
        "id": 141654454,
        "node_id": "U_kgDOCHF5tg",
        "avatar_url": "https://avatars.githubusercontent.com/u/141654454?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/0xKoaj",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-14T18:22:49Z",
      "updated_at": "2026-02-14T18:22:49Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## [Tool] OnlySwaps MCP Server - Swap crypto with your AI agent\n\nHey r/ClaudeAI,\n\nJust built an MCP server for [OnlySwaps](https://onlyswaps.fyi) — a no-KYC DEX aggregator that supports 12+ chains.\n\n**What it does:**\n- Get swap quotes (e.g., \"How much USDC do I get for 0.1 ETH?\")\n- Generate swap transactions (ready to sign and broadcast)\n- Check transaction status\n- Get token prices\n\n**Supported chains:**\nEthereum, Arbitrum, Base, Optimism, Polygon, Avalanche, BSC, Fantom, Linea, Scroll, zkSync, Mantle\n\n**Installation:**\n```json\n// claude_desktop_config.json\n{\n  \"mcpServers\": {\n    \"onlyswaps\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@onlyswaps/mcp\"]\n    }\n  }\n}\n```\n\n**Example usage:**\n```\nUser: \"Get me a quote to swap 0.1 ETH to USDC on Arbitrum\"\nClaude: [uses onlyswaps_get_quote tool]\n```\n\nIt's non-custodial — your agent never touches private keys, just generates the transaction data for you to sign.\n\n**Links:**\n- Website: https://onlyswaps.fyi\n- NPM: https://www.npmjs.com/package/@onlyswaps/mcp\n\nWould love feedback from the community!",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3333/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3329",
      "id": 3939454119,
      "node_id": "I_kwDONRaG_87qz0yn",
      "number": 3329,
      "title": "Add x402 API Network — 16 micropayment-powered tools for AI agents",
      "user": {
        "login": "fatihdagustu20-hub",
        "id": 258659354,
        "node_id": "U_kgDOD2rUGg",
        "avatar_url": "https://avatars.githubusercontent.com/u/258659354?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/fatihdagustu20-hub",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-13T21:59:06Z",
      "updated_at": "2026-02-13T21:59:06Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## x402 API Network MCP Server\n\n**Repository:** https://github.com/fatihdagustu20-hub/x402-api-network\n**Live API:** https://x402.fatihai.app\n\n### Description\nMCP server that exposes 16 utility and AI tools, powered by x402 micropayments (USDC on Base L2). AI agents can use these tools directly via MCP, or pay per-call via the x402 protocol.\n\n### Tools (16 total)\n\n**High-Value:**\n- `verify_email` — Email verification with scoring (syntax, MX, disposable, role-based)\n- `domain_health` — Domain email health analysis (MX, SPF, DKIM, DMARC)\n- `scrape` — Web scraping with structured data extraction\n- `ai_generate` — AI content generation (Llama 3.3 70B) — blog, email, social, SEO\n\n**Utilities:**\n- `dns_lookup`, `whois`, `ip_info`, `ssl_check` — DNS & domain tools\n- `url_meta`, `html_to_markdown`, `http_headers` — Web tools\n- `qr_code`, `password_strength`, `text_stats` — Utility tools\n- `json_format`, `base64` — Data tools\n\n### Installation\n```bash\nnpm install\nnode mcp-server.js\n```\n\n### Claude Desktop Config\n```json\n{\n  \"mcpServers\": {\n    \"x402-api-network\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/x402-api-network/mcp-server.js\"]\n    }\n  }\n}\n```\n\n### Links\n- x402 Protocol: https://www.x402.org\n- Discovery manifest: https://x402.fatihai.app/.well-known/x402\n- llms.txt: https://x402.fatihai.app/llms.txt",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3329/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3327",
      "id": 3935431652,
      "node_id": "I_kwDONRaG_87qkevk",
      "number": 3327,
      "title": "Zulezu022144",
      "user": {
        "login": "ortizmaker",
        "id": 260937432,
        "node_id": "U_kgDOD42W2A",
        "avatar_url": "https://avatars.githubusercontent.com/u/260937432?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ortizmaker",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-13T05:27:32Z",
      "updated_at": "2026-02-13T05:27:32Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\n\n**Describe the solution you'd like**\nA clear and concise description of what you want to happen.\n\n**Describe alternatives you've considered**\nA clear and concise description of any alternative solutions or features you've considered.\n\n**Additional context**\nAdd any other context or screenshots about the feature request here.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3327/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3326",
      "id": 3935429897,
      "node_id": "I_kwDONRaG_87qkeUJ",
      "number": 3326,
      "title": "Simba",
      "user": {
        "login": "ortizmaker",
        "id": 260937432,
        "node_id": "U_kgDOD42W2A",
        "avatar_url": "https://avatars.githubusercontent.com/u/260937432?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ortizmaker",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-13T05:26:52Z",
      "updated_at": "2026-02-13T05:26:52Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "#\n\n<!-- Failed to upload \"GitHubDesktop-x64 3.zip\" -->\n\nA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\n\n**Describe the solution you'd like**\nA clear and concise description of what you want to happen.\n\n**Describe alternatives you've considered**\nA clear and concise description of any alternative solutions or features you've considered.\n\n**Additional context**\nAdd any other context or screenshots about the feature request here.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3326/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3318",
      "id": 3924373473,
      "node_id": "I_kwDONRaG_87p6S_h",
      "number": 3318,
      "title": "请问有定闹钟的mcp吗？tks",
      "user": {
        "login": "henbucuoshanghai",
        "id": 37647094,
        "node_id": "MDQ6VXNlcjM3NjQ3MDk0",
        "avatar_url": "https://avatars.githubusercontent.com/u/37647094?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/henbucuoshanghai",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-11T02:13:11Z",
      "updated_at": "2026-02-11T02:13:11Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": null,
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3318/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3317",
      "id": 3922823112,
      "node_id": "I_kwDONRaG_87p0YfI",
      "number": 3317,
      "title": "Security Audit: 2 finding(s) in mcp-server-filesystem",
      "user": {
        "login": "starbuck100",
        "id": 25417736,
        "node_id": "MDQ6VXNlcjI1NDE3NzM2",
        "avatar_url": "https://avatars.githubusercontent.com/u/25417736?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/starbuck100",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2026-02-10T17:55:25Z",
      "updated_at": "2026-02-12T15:17:13Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## AgentAudit Security Audit Report\n\n| Metric | Value |\n|--------|-------|\n| Package | `@modelcontextprotocol/server-filesystem` |\n| Version | 0.6.3 |\n| Risk Score | 2/100 |\n| Result | safe |\n| Findings | 4 total (0 critical, 0 high, 0 medium, 2 low) |\n\n### Overall Assessment\n\nThe MCP filesystem server is **well-designed with strong security practices**. The codebase demonstrates professional security implementation including:\n\n✅ Comprehensive path validation with symlink resolution  \n✅ Strict directory access control via allowlist  \n✅ Atomic file operations preventing race conditions  \n✅ Proper handling of null bytes and path traversal attempts  \n✅ Detailed security comments explaining design decisions  \n\nThe 2 low-severity findings are minor improvements that don't represent exploitable vulnerabilities.\n\n### Real Findings (2 low-severity issues)\n\n#### 1. LOW: Error messages expose internal path information\n**File:** `src/filesystem/lib.ts:87`  \n**Issue:** Error messages include full filesystem paths when validation fails  \n**Impact:** Could leak directory structure in shared environments  \n**Remediation:** Consider sanitizing error messages in production mode\n\n#### 2. LOW: NPX usage without version pinning in documentation  \n**File:** `README.md:243`  \n**Issue:** Documentation shows `npx -y @modelcontextprotocol/server-filesystem` without version pinning  \n**Impact:** Supply chain risk if malicious version published  \n**Remediation:** Update docs to recommend version pinning for production: `npx -y @modelcontextprotocol/server-filesystem@0.6.3`\n\n### By-Design Security Patterns (Informational)\n\nThese are intentional features that require careful user configuration but are not vulnerabilities:\n\n1. **Broad filesystem permissions** - By design for an MCP filesystem server. Users control allowed directories via configuration.\n2. **Arbitrary path operations** - Necessary functionality for AI agent file operations. Protected by path validation.\n\n### Recommendations\n\n1. **For Documentation:** Add version pinning examples to README\n2. **For Error Handling:** Implement a debug mode flag to toggle verbose vs. sanitized errors\n3. **For Users:** Always restrict allowed directories to minimum necessary paths; use Docker read-only mounts where possible\n\n### Full Report\n\nView the complete audit report with code-level details and evidence:  \n**[AgentAudit Report](https://agentaudit.dev/skills/mcp-server-filesystem)**\n\n---\n\n*This audit was performed automatically by [AgentAudit](https://agentaudit.dev), the security registry for AI agent packages. The findings are based on code review of commit [70c549b](https://github.com/modelcontextprotocol/servers/commit/70c549be694c1128a29568c53d0fbdfed0e02702).*",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3317/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3315",
      "id": 3922586696,
      "node_id": "I_kwDONRaG_87pzexI",
      "number": 3315,
      "title": "Security Audit: 1 finding(s) in @modelcontextprotocol/server-memory",
      "user": {
        "login": "starbuck100",
        "id": 25417736,
        "node_id": "MDQ6VXNlcjI1NDE3NzM2",
        "avatar_url": "https://avatars.githubusercontent.com/u/25417736?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/starbuck100",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2026-02-10T17:07:41Z",
      "updated_at": "2026-02-12T09:15:58Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## AgentAudit Security Audit Report\n\n| Metric | Value |\n|--------|-------|\n| Package | `@modelcontextprotocol/server-memory` |\n| Version | 2026.1.26 |\n| Risk Score | 5/100 |\n| Result | safe |\n| Findings | 2 total (0 critical, 0 high, 1 medium, 1 low) |\n\n### Findings Summary\n\n**Medium Severity:**\n- **PATH_TRAV_001**: Potential path traversal in custom memory file path (dist/index.js:16)\n\n**Low Severity (by-design):**\n- **INFO_LEAK_001**: Verbose error messages to stderr (dist/index.js:31) - marked as by-design\n\n### Details\n\n#### Medium: Potential path traversal in custom memory file path\n**Location:** dist/index.js:16\n**Description:** The MEMORY_FILE_PATH environment variable accepts relative paths that are resolved relative to the script directory. While this is user-configured and not externally exploitable, relative paths with '../' sequences could potentially write outside the intended directory. However, this is a configuration-time setting controlled by the user, not runtime input from external sources.\n\n**Affected Code:**\n```javascript\n: path.join(path.dirname(fileURLToPath(import.meta.url)), process.env.MEMORY_FILE_PATH);\n```\n\n**Remediation:** Consider validating that resolved paths don't escape the intended directory, or require absolute paths only. Alternatively, document that users should use absolute paths for MEMORY_FILE_PATH.\n\n### Full Report\n\nView the complete audit report with details, evidence, and remediation guidance:\n**[AgentAudit Report](https://agentaudit.dev/skills/@modelcontextprotocol/server-memory)**\n\n---\n\n*This audit was performed automatically by [AgentAudit](https://agentaudit.dev), the security registry for AI agent packages. If you believe any finding is incorrect, you can dispute it on the platform.*",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3315/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3314",
      "id": 3922562254,
      "node_id": "I_kwDONRaG_87pzYzO",
      "number": 3314,
      "title": "Security Audit: SQL injection vulnerability in mcp-server-sqlite",
      "user": {
        "login": "starbuck100",
        "id": 25417736,
        "node_id": "MDQ6VXNlcjI1NDE3NzM2",
        "avatar_url": "https://avatars.githubusercontent.com/u/25417736?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/starbuck100",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2026-02-10T17:02:16Z",
      "updated_at": "2026-02-12T15:16:55Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## AgentAudit Security Audit Report\n\n| Metric | Value |\n|--------|-------|\n| Package | `mcp-server-sqlite` |\n| Version | `2025.4.25` |\n| Risk Score | 25/100 |\n| Result | safe |\n| Findings | 1 total (1 critical, 0 high, 0 medium, 0 low) |\n\n### Findings Summary\n\n| Severity | Title | File:Line |\n|----------|-------|-----------|\n| Critical | SQL injection in describe_table via f-string | mcp_server_sqlite/server.py:326 |\n\n### Details\n\n**SQL Injection in describe_table Tool**\n\nThe `describe_table` tool constructs a SQL query using f-string interpolation without sanitizing the `table_name` parameter:\n\n```python\nresults = db._execute_query(\n    f\"PRAGMA table_info({arguments['table_name']})\"\n)\n```\n\n**Attack Vector:**\nAn attacker could provide a crafted `table_name` such as:\n- `users); DROP TABLE users; --`\n- `users); SELECT * FROM sqlite_master; --`\n\nThis would execute arbitrary SQL commands.\n\n**Recommendation:**\n1. Validate `table_name` against the list of existing tables before using it\n2. Use parameterized queries where possible\n3. Sanitize the input to only allow alphanumeric characters and underscores\n\n**Example Fix:**\n```python\n# Get list of valid tables first\nvalid_tables = db._execute_query(\"SELECT name FROM sqlite_master WHERE type='table'\")\ntable_names = [row['name'] for row in valid_tables]\n\nif arguments['table_name'] not in table_names:\n    raise ValueError(f\"Table '{arguments['table_name']}' does not exist\")\n\n# Now safe to use\nresults = db._execute_query(f\"PRAGMA table_info({arguments['table_name']})\")\n```\n\n### Full Report\n\nView the complete audit report with details, evidence, and remediation guidance:\n**[AgentAudit Report](https://agentaudit.dev/skills/mcp-server-sqlite)**\n\n---\n\n*This audit was performed automatically by [AgentAudit](https://agentaudit.dev), the security registry for AI agent packages. If you believe any finding is incorrect, you can dispute it on the platform.*",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3314/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3309",
      "id": 3919093446,
      "node_id": "I_kwDONRaG_87pmJ7G",
      "number": 3309,
      "title": "Create latest docker image for mcp/everthing with support for streamable server",
      "user": {
        "login": "chuangw6",
        "id": 30398455,
        "node_id": "MDQ6VXNlcjMwMzk4NDU1",
        "avatar_url": "https://avatars.githubusercontent.com/u/30398455?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/chuangw6",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2026-02-10T02:25:57Z",
      "updated_at": "2026-02-17T18:06:24Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Hi team,\n\nI noticed that there have been several updates since the last official mcp/everything image was published, including \n- the support of different transports through command line, https://github.com/modelcontextprotocol/servers/commit/f93911607b165c1e0b0f0a68b6ab9647b62adece.\n- and updated tool names https://github.com/modelcontextprotocol/servers/blob/main/src/everything/docs/features.md.\n\nThe latest image (<https://hub.docker.com/r/mcp/everything>) appears to be outdated. Can we please push the latest Docker image and include instructions on how to run the streamable HTTP server?",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3309/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3301",
      "id": 3911634377,
      "node_id": "I_kwDONRaG_87pJs3J",
      "number": 3301,
      "title": "Issue Title",
      "user": {
        "login": "ksbicorp",
        "id": 220564021,
        "node_id": "U_kgDODSWKNQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/220564021?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ksbicorp",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-08T00:22:45Z",
      "updated_at": "2026-02-08T00:22:45Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "<!-- Edit the body of your new issue then click the ✓ \"Create Issue\" button in the top right of the editor. The first line will be the issue title. Assignees and Labels follow after a blank line. Leave an empty line before beginning the body of the issue. -->",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3301/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3292",
      "id": 3905993739,
      "node_id": "I_kwDONRaG_87o0LwL",
      "number": 3292,
      "title": "[New Server] AutropicAI - Find the cheapest LLM for any task",
      "user": {
        "login": "tlkc888-Jenkins",
        "id": 259462559,
        "node_id": "U_kgDOD3cVnw",
        "avatar_url": "https://avatars.githubusercontent.com/u/259462559?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/tlkc888-Jenkins",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-06T10:13:32Z",
      "updated_at": "2026-02-06T10:13:32Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Server Name\nAutropicAI MCP Server\n\n## Description\nFinds the cheapest LLM model for any task from 800+ indexed models across all major providers.\n\n## Repository\nhttps://github.com/tlkc888-Jenkins/autropicai-mcp\n\n## Installation\n```json\n{\n  \"mcpServers\": {\n    \"autropicai\": {\n      \"command\": \"npx\",\n      \"args\": [\"github:tlkc888-Jenkins/autropicai-mcp\"]\n    }\n  }\n}\n```\n\n## Tools\n- `get_cheapest_model` - Returns cheapest models for a task tier (simple/standard/complex/max)\n\n## Links\n- API: https://tryautropic.com\n- GitHub: https://github.com/tlkc888-Jenkins/autropicai-mcp",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3292/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3287",
      "id": 3891665568,
      "node_id": "I_kwDONRaG_87n9hqg",
      "number": 3287,
      "title": "fetch server: TypeError with httpx 0.28+ - 'proxies' argument renamed to 'proxy'",
      "user": {
        "login": "palashjhamnani",
        "id": 8273428,
        "node_id": "MDQ6VXNlcjgyNzM0Mjg=",
        "avatar_url": "https://avatars.githubusercontent.com/u/8273428?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/palashjhamnani",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-02-03T14:51:46Z",
      "updated_at": "2026-02-03T14:51:46Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "TypeError: AsyncClient.__init__() got an unexpected keyword argument 'proxies' with httpx 0.28+\n\nDescription:\n\nThe fetch server fails when using the [--proxy-url] argument with httpx version 0.28.x due to an API change in httpx.\n\nEnvironment:\n\nmcp-server-fetch version: 2025.4.7 (latest)\nhttpx version: 0.28.1\nPython version: 3.12\nError: TypeError: AsyncClient.__init__() got an unexpected keyword argument 'proxies'\n\nSteps to Reproduce:\n\nInstall mcp-server-fetch with httpx 0.28+\nRun with proxy: python -m mcp_server_fetch --proxy-url http://localhost:9000\nAttempt to fetch any URL\n\nReferences:\n\nhttpx changelog: \nhttps://github.com/encode/httpx/blob/master/CHANGELOG.md (0.28.0 release notes mention the proxies → proxy rename)",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3287/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3293
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3281",
      "id": 3882267714,
      "node_id": "I_kwDONRaG_87nZrRC",
      "number": 3281,
      "title": "Filesystem extension: Frequent timeout or outright failures since claude desktop 1.1.1520",
      "user": {
        "login": "alanbork",
        "id": 56519925,
        "node_id": "MDQ6VXNlcjU2NTE5OTI1",
        "avatar_url": "https://avatars.githubusercontent.com/u/56519925?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/alanbork",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 14,
      "created_at": "2026-02-01T15:39:59Z",
      "updated_at": "2026-02-06T18:05:29Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nFor the last three days I have been having frequent timeouts where any sort of filesystem extension activity results in either a delay of minutes before it resolves or the claude desktop app just gives up entirely and deletes the last few chat messages. I also get frequent messages where the edits that it attempts to make are failed. Nothing has changed in my setup and it worked great for the last two weeks before this.\n\n**Logs**\n\n2026-02-01T15:29:43.550Z [Filesystem] [info] Initializing server... { metadata: undefined }\n2026-02-01T15:29:43.607Z [Filesystem] [info] Using built-in Node.js for MCP server: Filesystem { metadata: undefined }\n2026-02-01T15:29:43.636Z [Filesystem] [info] Server started and connected successfully { metadata: undefined }\n2026-02-01T15:29:43.870Z [Filesystem] [info] Message from client: {\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{},\"clientInfo\":{\"name\":\"claude-ai\",\"version\":\"0.1.0\"}},\"jsonrpc\":\"2.0\",\"id\":0} { metadata: undefined }\n2026-02-01T15:30:03.229Z [Filesystem] [info] Message from server: {\"result\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{\"tools\":{}},\"serverInfo\":{\"name\":\"secure-filesystem-server\",\"version\":\"0.2.0\"}},\"jsonrpc\":\"2.0\",\"id\":0} { metadata: undefined }\n2026-02-01T15:30:03.231Z [Filesystem] [info] Message from client: {\"method\":\"notifications/initialized\",\"jsonrpc\":\"2.0\"} { metadata: undefined }\n2026-02-01T15:30:03.232Z [Filesystem] [info] Message from client: {\"method\":\"tools/list\",\"params\":{},\"jsonrpc\":\"2.0\",\"id\":1} { metadata: undefined }\n2026-02-01T15:30:03.241Z [Filesystem] [info] Message from server: {\"result\":{\"tools\":[{\"name\":\"read_file\",\"description\":\"Read the complete contents of a file as text. DEPRECATED: Use read_text_file instead.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"tail\":{\"type\":\"number\",\"description\":\"If pr...[7463 chars truncated]...ies within these allowed directories are also accessible. Use this to understand which directories and their nested paths are available before trying to access files.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{},\"required\":[]}}]},\"jsonrpc\":\"2.0\",\"id\":1} { metadata: undefined }\n2026-02-01T15:32:27.000Z [Filesystem] [info] Message from client: {\"method\":\"tools/call\",\"params\":{\"name\":\"write_file\",\"arguments\":{\"path\":\"C:\\\\prj\\\\claude\\\\JIGSAW_GAME_DESIGN_BACKUP.md\",\"content\":\"# Jigsaw Puzzle Game - Design Document\\n**Status**: Phase 2 Complete | Updated: 2025-02-01\\n\\n## Project Overview\\n\\nA stand...[15203 chars truncated]...uzzle.html?image=${encodeURIComponent(imageFile)}&level=${level}&multiplier=${multiplier}`;\\n// Result: puzzle.html?image=images%2Falpine%20meadow---ytiles%3D10%20bcolor%3D00000%20wcolor%3Daa0000.jpg&level=1&multiplier=1.0\\n```\\n\"}},\"jsonrpc\":\"2.0\",\"id\":2} { metadata: undefined }\n2026-02-01T15:32:27.047Z [Filesystem] [info] Message from server: {\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Successfully wrote to C:\\\\prj\\\\claude\\\\JIGSAW_GAME_DESIGN_BACKUP.md\"}]},\"jsonrpc\":\"2.0\",\"id\":2} { metadata: undefined }\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3281/reactions",
        "total_count": 4,
        "+1": 4,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3278",
      "id": 3879423397,
      "node_id": "I_kwDONRaG_87nO02l",
      "number": 3278,
      "title": "MCP Server Communication Failure on Windows with Antigravity/Gemini Code Assist",
      "user": {
        "login": "BIMpraxis",
        "id": 47066679,
        "node_id": "MDQ6VXNlcjQ3MDY2Njc5",
        "avatar_url": "https://avatars.githubusercontent.com/u/47066679?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/BIMpraxis",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-31T15:28:42Z",
      "updated_at": "2026-01-31T15:28:42Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# Bug Report: MCP Server Communication Failure\n\n## Summary\nThe MCP server `@modelcontextprotocol/server-memory` starts correctly but Antigravity fails to communicate with it, causing indefinite loading states when calling MCP tools like `mcp_conversations_read_graph`.\n\n## Environment\n- **OS**: Windows\n- **Extension**: Antigravity (Gemini Code Assist)\n- **MCP Config Location**: `C:\\Users\\julio\\.gemini\\antigravity\\mcp_config.json`\n\n## Configuration\n```json\n{\n    \"mcpServers\": {\n        \"conversations\": {\n            \"command\": \"npx\",\n            \"args\": [\"-y\", \"@modelcontextprotocol/server-memory\"],\n            \"env\": {\n                \"MEMORY_FILE_PATH\": \"C:\\\\Users\\\\julio\\\\.gemini\\\\antigravity\\\\mcp_memory.json\"\n            }\n        }\n    }\n}\n```\n\n## Steps to Reproduce\n1. Configure MCP server as shown above\n2. Start/reload VSCode with Antigravity\n3. Attempt to use any MCP tool (e.g., `mcp_conversations_read_graph`)\n4. **Result**: Tool hangs indefinitely with \"Loading...\" state, never returns\n\n## Diagnosis Performed\n\n### 1. Server Runs Correctly Manually\n```bash\nMEMORY_FILE_PATH=\"C:/Users/julio/.gemini/antigravity/mcp_memory.json\" npx -y @modelcontextprotocol/server-memory\n# Output: \"Knowledge Graph MCP Server running on stdio\"\n```\n\n### 2. Node Processes Are Running\n```\nnode.exe  PID 11404\nnode.exe  PID 3260\n```\n\n### 3. Memory File Never Created\nThe `mcp_memory.json` file is never created, indicating the server is never successfully invoked by Antigravity.\n\n## Expected Behavior\nMCP tools should return results within seconds, not hang indefinitely.\n\n## Actual Behavior\nMCP tools hang indefinitely. User must manually cancel the operation.\n\n## Suspected Cause\nThe stdio communication channel between Antigravity and the MCP server is not being established correctly on Windows.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3278/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3276",
      "id": 3879073597,
      "node_id": "I_kwDONRaG_87nNfc9",
      "number": 3276,
      "title": "Add fastMCP4J: Annotation-Driven Java MCP Server Library",
      "user": {
        "login": "tersePrompts",
        "id": 22475793,
        "node_id": "MDQ6VXNlcjIyNDc1Nzkz",
        "avatar_url": "https://avatars.githubusercontent.com/u/22475793?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/tersePrompts",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-31T12:12:57Z",
      "updated_at": "2026-01-31T12:12:57Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Summary\n\n**fastMCP4J** is a Java 17+ library for building MCP servers using annotations. It dramatically reduces the boilerplate required to create AI-callable tools from ~35 lines per tool (official SDK) to ~5 lines. Lightweight, production-ready, and framework-agnostic.\n\n## Project Details\n\n- **Name**: fastMCP4J\n- **GitHub Repository**: https://github.com/tersePrompts/fastMCP4J\n- **Maven Central**: https://central.sonatype.com/artifact/io.github.terseprompts.fastmcp/fastmcp-java\n- **License**: MIT\n- **Language**: Java 17+\n- **Current Version**: 0.3.1-beta\n\n## Installation\n\n### Maven\n\n\\`\\`\\`xml\n<dependency>\n    <groupId>io.github.terseprompts.fastmcp</groupId>\n    <artifactId>fastmcp-java</artifactId>\n    <version>0.3.1-beta</version>\n</dependency>\n\\`\\`\\`\n\n### Gradle\n\n\\`\\`\\`groovy\ndependencies {\n    implementation 'io.github.terseprompts.fastmcp:fastmcp-java:0.3.1-beta'\n}\n\\`\\`\\`\n\n## Quick Start\n\n\\`\\`\\`java\nimport com.ultrathink.fastmcp.*;\n\n@McpServer(name = \"MyAssistant\", version = \"1.0\")\npublic class MyAssistant {\n\n    @McpTool(description = \"Add two numbers\")\n    public int add(int a, int b) {\n        return a + b;\n    }\n\n    @McpTool(description = \"Summarize text to max 100 chars\")\n    public String summarize(@McpParam(description = \"Text to summarize\") String text) {\n        return text.substring(0, Math.min(100, text.length()));\n    }\n\n    public static void main(String[] args) {\n        FastMCP.server(MyAssistant.class)\n            .stdio()           // or .sse() or .streamable()\n            .run();\n    }\n}\n\\`\\`\\`\n\n## MCP Configuration (Claude Desktop)\n\n\\`\\`\\`json\n{\n  \"mcpServers\": {\n    \"myAssistant\": {\n      \"command\": \"java\",\n      \"args\": [\"-cp\", \"your-classpath\", \"com.example.MyAssistant\"]\n    }\n  }\n}\n\\`\\`\\`\n\n## Key Features\n\n### Annotation-Driven Development\n\n| Annotation | Purpose |\n|------------|---------|\n| \\`@McpServer\\` | Define MCP server metadata |\n| \\`@McpTool\\` | Expose any method as an AI tool |\n| \\`@McpResource\\` | Serve data/files to AI agents via URI |\n| \\`@McpPrompt\\` | Define reusable LLM prompt templates |\n| \\`@McpParam\\` | Add description, examples, constraints, defaults |\n| \\`@McpAsync\\` | Reactive tools with Project Reactor |\n| \\`@McpContext\\` | Inject request context for progress/reporting |\n| \\`@McpMemory\\` | Built-in persistent storage |\n| \\`@McpTodo\\` | Built-in task management tools |\n| \\`@McpPlanner\\` | Built-in task decomposition tools |\n| \\`@McpFileRead\\` | Built-in file reading tools |\n| \\`@McpFileWrite\\` | Built-in file writing tools |\n| \\`@McpBash\\` | Built-in shell command execution |\n| \\`@McpTelemetry\\` | Built-in metrics and tracing |\n| \\`@McpPreHook\\` / \\`@McpPostHook\\` | Run code before/after tools |\n\n### Built-in Tools (One Annotation = Full Functionality)\n\n| Annotation | Tools Provided |\n|------------|----------------|\n| \\`@McpMemory\\` | list, read, create, replace, insert, delete, rename |\n| \\`@McpTodo\\` | add, list, updateStatus, updateTask, delete, clearCompleted |\n| \\`@McpPlanner\\` | createPlan, listPlans, getPlan, addTask, addSubtask |\n| \\`@McpFileRead\\` | readLines, readFile, grep, getStats |\n| \\`@McpFileWrite\\` | writeFile, appendFile, writeLines, deleteFile, createDirectory |\n| \\`@McpBash\\` | execute_command (with OS-aware shell selection) |\n\n### Three Transport Options\n\n\\`\\`\\`java\nFastMCP.server(MyServer.class)\n    .stdio()         // For CLI tools, local agents (Claude Desktop)\n    .sse()           // For web clients, long-lived connections\n    .streamable()    // For bidirectional streaming (recommended)\n    .port(3000)                              // HTTP port\n    .requestTimeout(Duration.ofMinutes(5))   // Request timeout\n    .keepAliveSeconds(30)                    // Keep-alive interval\n    .run();\n\\`\\`\\`\n\n### Multi-Class Tool Organization\n\n**Manual modules** (fast, explicit):\n\\`\\`\\`java\n@McpServer(\n    name = \"MyServer\",\n    version = \"1.0\",\n    modules = {StringTools.class, MathTools.class}\n)\n\\`\\`\\`\n\n**Package scanning** (convenient):\n\\`\\`\\`java\n@McpServer(\n    name = \"MyServer\",\n    version = \"1.0\",\n    scanBasePackage = \"com.example.tools\"\n)\n\\`\\`\\`\n\n## Comparison: FastMCP4J vs Alternatives\n\n### vs Official MCP Java SDK\n\n| Aspect | Official SDK | FastMCP4J |\n|--------|--------------|-----------|\n| **Code per tool** | ~35 lines | ~5 lines |\n| **JSON Schema** | Manual | Auto-generated |\n| **Type safety** | Manual parsing | Automatic binding |\n| **Built-in tools** | None | 6 modules included |\n| **Dependencies** | SDK only | SDK + 11 lightweight |\n\n### vs Spring AI MCP\n\n| Aspect | Spring AI MCP | FastMCP4J |\n|--------|---------------|-----------|\n| **Spring required?** | Yes | No |\n| **Framework lock-in** | Yes | No |\n| **Startup time** | ~2-5s | <500ms |\n| **Dependencies** | 50+ jars | **12 jars** |\n| **Best for** | Spring Boot apps | Any Java app |\n\n## Performance\n\n| Metric | Value |\n|--------|-------|\n| **Cold start** | <500ms |\n| **Tool invocation** | <5ms |\n| **Memory footprint** | ~64MB |\n| **Dependencies** | 12 jars |\n| **Test coverage** | 197 passing tests |\n\n## Perfect For\n\n- Java developers integrating with **Claude Desktop**, **Cursor**, **Windsurf**\n- Backend engineers exposing business logic to **AI agents**\n- Enterprise teams building **LLM-powered microservices**\n- Anyone building **AI tools** in Java without learning a new framework\n\n## Real-World Example\n\n\\`\\`\\`java\n@McpServer(name = \"DatabaseTools\", version = \"1.0\")\n@McpMemory     // AI remembers across sessions\n@McpTodo       // AI manages tasks\npublic class DatabaseTools {\n\n    @McpTool(description = \"Query user by ID\")\n    public User getUserById(@McpParam(description = \"User ID\") int userId) {\n        return userRepository.findById(userId);\n    }\n\n    @McpTool(description = \"Search users by name\")\n    public List<User> searchUsers(@McpParam(description = \"Name to search\") String name) {\n        return userRepository.findByNameContaining(name);\n    }\n}\n\\`\\`\\`\n\n## Documentation\n\n- [Architecture](https://github.com/tersePrompts/fastMCP4J/blob/main/ARCHITECTURE.md)\n- [Roadmap](https://github.com/tersePrompts/fastMCP4J/blob/main/ROADMAP.md)\n- [Contributing](https://github.com/tersePrompts/fastMCP4J/blob/main/CONTRIBUTING.md)\n- [Changelog](https://github.com/tersePrompts/fastMCP4J/blob/main/CHANGELOG.md)\n- [Working Example](https://github.com/tersePrompts/fastMCP4J/blob/main/src/test/java/com/ultrathink/fastmcp/example/EchoServer.java)\n\n---\n\n**Use case**: Java developers who want the fastest way to build MCP servers and expose existing Java business logic to AI agents, without framework lock-in or heavy dependencies.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3276/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3275",
      "id": 3879073489,
      "node_id": "I_kwDONRaG_87nNfbR",
      "number": 3275,
      "title": "Add jarp-mcp: Java Archive Reader Protocol for AI Agents",
      "user": {
        "login": "tersePrompts",
        "id": 22475793,
        "node_id": "MDQ6VXNlcjIyNDc1Nzkz",
        "avatar_url": "https://avatars.githubusercontent.com/u/22475793?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/tersePrompts",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-31T12:12:54Z",
      "updated_at": "2026-01-31T12:12:54Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Summary\n\n**jarp-mcp** is a TypeScript/Node.js MCP server that gives AI agents \"X-ray vision\" into compiled Java code. It enables LLMs to decompile and analyze Java classes from Maven/Gradle dependencies, solving a critical pain point for Java developers using AI assistants.\n\n## Project Details\n\n- **Name**: jarp-mcp (Java Archive Reader Protocol)\n- **GitHub Repository**: https://github.com/tersePrompts/jarp-mcp\n- **Package**: https://www.npmjs.com/package/jarp-mcp\n- **License**: Apache-2.0\n- **Language**: TypeScript 5.7 / Node.js 16+\n- **MCP Version**: Compatible\n\n## Problem It Solves\n\nAI agents like Claude, GPT-4, and Cursor **cannot read compiled Java code**. When working with Spring Boot, Maven, or any Java project:\n\n- *\"Show me how JpaRepository.saveAll() works\"* → Agent **hallucinates** the method signature\n- *\"What parameters does this internal library function take?\"* → Agent **guesses** wrong\n- *\"Why does this dependency throw this exception?\"* → Agent **cannot see** the source\n\nDevelopers typically spend 5-10 minutes per class manually decompiling with JD-GUI, copying source, and pasting into chat.\n\n## Installation\n\n### Zero-Setup (Recommended)\n\n\\`\\`\\`bash\nnpx jarp-mcp\n\\`\\`\\`\n\nNo installation required. The CFR decompiler is bundled.\n\n### Global Install\n\n\\`\\`\\`bash\nnpm install -g jarp-mcp\njarp-mcp start\n\\`\\`\\`\n\n## MCP Configuration\n\nAdd to your AI editor's MCP configuration (Claude Desktop, Cursor, Windsurf, Cline, etc.):\n\n\\`\\`\\`json\n{\n  \"mcpServers\": {\n    \"jarp-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"jarp-mcp\"]\n    }\n  }\n}\n\\`\\`\\`\n\n## MCP Tools Provided\n\n| Tool | Description |\n|------|-------------|\n| **\\`scan_dependencies\\`** | Scans Maven/Gradle project, builds class → JAR index |\n| **\\`decompile_class\\`** | Returns full Java source code for any class |\n| **\\`analyze_class\\`** | Analyzes class structure, methods, fields, inheritance |\n\n## Key Features\n\n- **Zero external dependencies** — CFR decompiler bundled (2.2MB JAR)\n- **Smart path resolution** — Works with \\`npx\\`, \\`npm install -g\\`, local dev\n- **Maven & Gradle support** — Parses \\`pom.xml\\` and \\`build.gradle\\`\n- **Intelligent caching** — First decompile ~2s, subsequent <100ms\n- **Auto-indexing** — Builds class index on-demand if missing\n- **Cross-platform** — Works on Windows, macOS, Linux\n\n## Performance\n\n| Operation | First Run | Cached |\n|-----------|-----------|--------|\n| Scan 100 JARs | ~30s | N/A |\n| Decompile class | ~2s | <100ms |\n| Analyze structure | ~2s | <100ms |\n\n**Real-world example**: Spring Boot project with 156 dependencies (12,458 classes)\n- Initial scan: 45 seconds\n- Each class: ~1.5s first time, instant thereafter\n\n## Tech Stack\n\n\\`\\`\\`\nLanguage: TypeScript 5.7\nRuntime: Node.js 16+\nProtocol: Model Context Protocol (MCP)\nDecompiler: CFR 0.152 (bundled)\nBuild: tsc\nPackage: npm (zero-setup with npx)\nLicense: Apache-2.0\n\\`\\`\\`\n\n## Impact\n\n| Metric | Before | After |\n|--------|--------|-------|\n| Time to inspect a class | **5-10 min** | **<2 seconds** |\n| Accuracy of AI responses | ~60% (guessing) | **100%** (actual source) |\n| Manual steps | 4+ | **0** |\n\n## Acknowledgments\n\n- [handsomestWei](https://github.com/handsomestWei) — Original [java-class-analyzer-mcp-server](https://github.com/handsomestWei/java-class-analyzer-mcp-server)\n- [Lee Benfield](https://www.benf.org/other/cfr/) — CFR Decompiler\n\n---\n\n**Use case**: Perfect for Java developers using Claude Desktop, Cursor, Windsurf, or any MCP-compatible AI editor who need their AI assistant to understand compiled Java dependencies.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3275/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3271",
      "id": 3877467570,
      "node_id": "I_kwDONRaG_87nHXWy",
      "number": 3271,
      "title": "Raku MCP SDK",
      "user": {
        "login": "wkusnierczyk",
        "id": 2981661,
        "node_id": "MDQ6VXNlcjI5ODE2NjE=",
        "avatar_url": "https://avatars.githubusercontent.com/u/2981661?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/wkusnierczyk",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-30T21:36:22Z",
      "updated_at": "2026-01-30T21:36:22Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "I'd like to share with you **Raku MCP SDK**, a new MCP SDK written in the programming language [Raku](https://raku.org/) (aka Perl6):\n\n* https://github.com/wkusnierczyk/raku-mcp-sdk\n\nIt is currently in review with the Raku community, and will soon be announced on [Rakudo News Weekly](https://rakudoweekly.blog/).\n\nThe SDK is a complete implementation of the most recent MCP specification.  \nSee details in:\n* the extensive project [README file](https://github.com/wkusnierczyk/raku-mcp-sdk/blob/main/README.md);\n* the [GitHub page](https://wkusnierczyk.github.io/raku-mcp-sdk/), or \n* the official Raku distribution repository [Rakuland](https://raku.land/zef:wkusnierczyk/MCP).\n\nAll feedback much appreciated.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3271/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3267",
      "id": 3871509761,
      "node_id": "I_kwDONRaG_87mwo0B",
      "number": 3267,
      "title": "everything sever response with an extra empty SSE event causing the java mcp client to fail deserialization",
      "user": {
        "login": "smogos",
        "id": 200500518,
        "node_id": "U_kgDOC_NlJg",
        "avatar_url": "https://avatars.githubusercontent.com/u/200500518?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/smogos",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2026-01-29T16:20:52Z",
      "updated_at": "2026-02-05T03:31:58Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nWhen connecting to the everything sever and running the initialize command with 2025-11-25 version, the server returns an empty SSE event, fallowed by the initialize response. \nThis causes problems with the java mcp client which fails deserialization of the event.\n\nWhen connecting with 2025-06-18 version, that empty SSE event is not sent, only one SSE event is return with the result of the server info.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Create a docker image with the latest server-everything:\n```\nFROM node:slim\n\nENV PORT=3001\n\nENTRYPOINT [\"npx\", \"-y\", \"@modelcontextprotocol/server-everything\", \"streamableHttp\"]\n\nEXPOSE 3001\n```\n\n(Side note, any reason for not having newer images available at: https://hub.docker.com/r/mcp/everything ?)\n\nCall the server with latest protocol version:\n```\ncurl --location -k  'http:/*****' \\\n--header 'Accept: application/json,text/event-stream' \\\n--header 'Content-Type: application/json' \\\n--data '{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"initialize\",\n  \"params\": {\n    \"protocolVersion\": \"2025-11-25\",\n    \"capabilities\": {\n      \"roots\": {\n        \"listChanged\": false\n      },\n      \"sampling\": {},\n      \"elicitation\": {\n        \"form\": {},\n        \"url\": {}\n      },\n      \"tasks\": {\n        \"requests\": {\n          \"elicitation\": {\n            \"create\": {}\n          },\n          \"sampling\": {\n            \"createMessage\": {}\n          }\n        }\n      }\n    },\n    \"clientInfo\": {\n      \"name\": \"ExampleClient\",\n      \"title\": \"Example Client Display Name\",\n      \"version\": \"1.0.0\",\n      \"description\": \"An example MCP client application\",\n      \"icons\": [\n        {\n          \"src\": \"https://example.com/icon.png\",\n          \"mimeType\": \"image/png\",\n          \"sizes\": [\"48x48\"]\n        }\n      ],\n      \"websiteUrl\": \"https://example.com\"\n    }\n  }\n}'\nid: bd3bdc47-e4bc-4de3-abf7-f43dc27919f5_1769702220748_cbw7i7m9\ndata: \n\nevent: message\nid: bd3bdc47-e4bc-4de3-abf7-f43dc27919f5_1769702220749_mtzbfv1k\ndata: {\"result\":{\"protocolVersion\":\"2025-11-25\",\"capabilities\":{\"tools\":{\"listChanged\":true},\"prompts\":{\"listChanged\":true},\"resources\":{\"subscribe\":true,\"listChanged\":true},\"logging\":{},\"completions\":{}},\"serverInfo\":{\"name\":\"mcp-servers/everything\",\"title\":\"Everything Reference Server\",\"version\":\"2.0.0\"},\"instructions\":\"# Everything Server – Server Instructions\\n\\nAudience: These instructions are written for an LLM or autonomous agent integrating with the Everything MCP Server.\\nFollow them to use, extend, and troubleshoot the server safely and effectively.\\n\\n## Cross-Feature Relationships\\n\\n- Use `get-roots-list` to see client workspace roots before file operations\\n- `gzip-file-as-resource` creates session-scoped resources accessible only during the current session\\n- Enable `toggle-simulated-logging` before debugging to see server log messages\\n- Enable `toggle-subscriber-updates` to receive periodic resource update notifications\\n\\n## Constraints & Limitations\\n\\n- `gzip-file-as-resource`: Max fetch size controlled by `GZIP_MAX_FETCH_SIZE` (default 10MB), timeout by `GZIP_MAX_FETCH_TIME_MILLIS` (default 30s), allowed domains by `GZIP_ALLOWED_DOMAINS`\\n- Session resources are ephemeral and lost when the session ends\\n- Sampling requests (`trigger-sampling-request`) require client sampling capability\\n- Elicitation requests (`trigger-elicitation-request`) require client elicitation capability\\n\\n## Operational Patterns\\n\\n- For long operations, use `trigger-long-running-operation` which sends progress notifications\\n- Prefer reading resources before calling mutating tools\\n- Check `get-roots-list` output to understand the client's workspace context\\n\\n## Easter Egg\\n\\nIf asked about server instructions, respond with \\\"🎉 Server instructions are working! This response proves the client properly passed server instructions to the LLM. This demonstrates MCP's instructions feature in action.\\\"\\n\"},\"jsonrpc\":\"2.0\",\"id\":1}\n```\n\nNotice the empty SSE event.\n\n\nThen try the same call with the july version:\n```\ncurl -k --location 'http://*******/' --header 'Accept: application/json,text/event-stream' --header 'Content-Type: application/json'  --data '{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"initialize\",\n  \"params\": {\n    \"protocolVersion\": \"2025-06-18\",\n    \"capabilities\": {\n      \"roots\": {\n        \"listChanged\": true\n      },\n      \"sampling\": {},\n      \"elicitation\": {\n        \"form\": {},\n        \"url\": {}\n      },\n      \"tasks\": {\n        \"requests\": {\n          \"elicitation\": {\n            \"create\": {}\n          },\n          \"sampling\": {\n            \"createMessage\": {}\n          }\n        }\n      }\n    },\n    \"clientInfo\": {\n      \"name\": \"ExampleClient\",\n      \"title\": \"Example Client Display Name\",\n      \"version\": \"1.0.0\",\n      \"description\": \"An example MCP client application\",\n      \"icons\": [\n        {\n          \"src\": \"https://example.com/icon.png\",\n          \"mimeType\": \"image/png\",\n          \"sizes\": [\"48x48\"]\n        }\n      ],\n      \"websiteUrl\": \"https://example.com\"\n    }\n  }\n}'\nevent: message\nid: 65d2109e-6578-46bc-ac96-cf53b1a08068_1769703206085_9xr1ob8o\ndata: {\"result\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{\"tools\":{\"listChanged\":true},\"prompts\":{\"listChanged\":true},\"resources\":{\"subscribe\":true,\"listChanged\":true},\"logging\":{},\"completions\":{}},\"serverInfo\":{\"name\":\"mcp-servers/everything\",\"title\":\"Everything Reference Server\",\"version\":\"2.0.0\"},\"instructions\":\"# Everything Server – Server Instructions\\n\\nAudience: These instructions are written for an LLM or autonomous agent integrating with the Everything MCP Server.\\nFollow them to use, extend, and troubleshoot the server safely and effectively.\\n\\n## Cross-Feature Relationships\\n\\n- Use `get-roots-list` to see client workspace roots before file operations\\n- `gzip-file-as-resource` creates session-scoped resources accessible only during the current session\\n- Enable `toggle-simulated-logging` before debugging to see server log messages\\n- Enable `toggle-subscriber-updates` to receive periodic resource update notifications\\n\\n## Constraints & Limitations\\n\\n- `gzip-file-as-resource`: Max fetch size controlled by `GZIP_MAX_FETCH_SIZE` (default 10MB), timeout by `GZIP_MAX_FETCH_TIME_MILLIS` (default 30s), allowed domains by `GZIP_ALLOWED_DOMAINS`\\n- Session resources are ephemeral and lost when the session ends\\n- Sampling requests (`trigger-sampling-request`) require client sampling capability\\n- Elicitation requests (`trigger-elicitation-request`) require client elicitation capability\\n\\n## Operational Patterns\\n\\n- For long operations, use `trigger-long-running-operation` which sends progress notifications\\n- Prefer reading resources before calling mutating tools\\n- Check `get-roots-list` output to understand the client's workspace context\\n\\n## Easter Egg\\n\\nIf asked about server instructions, respond with \\\"🎉 Server instructions are working! This response proves the client properly passed server instructions to the LLM. This demonstrates MCP's instructions feature in action.\\\"\\n\"},\"jsonrpc\":\"2.0\",\"id\":1}\n```\n\n**Expected behavior**\nThere should not be an empty sse event sent when client is connecting with 2025-11-25\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3267/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3258",
      "id": 3865978180,
      "node_id": "I_kwDONRaG_87mbiVE",
      "number": 3258,
      "title": "Slack MCP: Tool responses may exceed API tool_name 64-char limit",
      "user": {
        "login": "TechnicalRhino",
        "id": 23074602,
        "node_id": "MDQ6VXNlcjIzMDc0NjAy",
        "avatar_url": "https://avatars.githubusercontent.com/u/23074602?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/TechnicalRhino",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2026-01-28T15:23:09Z",
      "updated_at": "2026-01-30T03:51:25Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Description\n\nWhen using `@modelcontextprotocol/server-slack` with Claude Code, an API error occurs because a `tool_reference.tool_name` in the response exceeds the 64-character limit enforced by the Anthropic API.\n\n## Error Message\n\n```\nAPI Error: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"messages.10.content.0.tool_result.content.2.tool_reference.tool_name: String should have at most 64 characters\"},\"request_id\":\"req_011CXa13UuZz4NJ9bb7mURZb\"}\n```\n\n## Steps to Reproduce\n\n1. Configure Slack MCP server with Claude Code\n2. Attempt to use any Slack tool (e.g., post a message)\n3. API error occurs\n\n## Expected Behavior\n\nTool should execute successfully.\n\n## Actual Behavior\n\nAPI returns 400 error due to tool name length validation failure.\n\n## Analysis\n\nThe error path `tool_result.content.2.tool_reference.tool_name` indicates the issue is in the tool result content, suggesting the Slack MCP server might be:\n\n1. Returning responses that include references to other tools\n2. Including tool names in its response content that, when prefixed by the client (e.g., `mcp__slack__`), exceed 64 characters\n\nWhen MCP clients prefix tool names (e.g., `mcp__{server}__{tool}`), the combined name can easily exceed the API's 64-character limit.\n\n## Environment\n\n- Package: `@modelcontextprotocol/server-slack` (latest via npx)\n- Client: Claude Code CLI\n- OS: macOS\n\n## Suggested Fix\n\nConsider:\n1. Ensuring tool names exposed by the server are short enough to accommodate client prefixes\n2. Not including tool references in response content, or using shortened identifiers\n3. Documenting maximum recommended tool name lengths for MCP servers\n\n---\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3258/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3253",
      "id": 3858002216,
      "node_id": "I_kwDONRaG_87l9HEo",
      "number": 3253,
      "title": "server-filesystem: macOS /tmp symlink causes path rejection when /tmp is in allowed directories",
      "user": {
        "login": "dotsetgreg",
        "id": 249987710,
        "node_id": "U_kgDODuaCfg",
        "avatar_url": "https://avatars.githubusercontent.com/u/249987710?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/dotsetgreg",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-26T22:47:06Z",
      "updated_at": "2026-01-26T22:47:06Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Description\n\nWhen running `server-filesystem` on macOS with `/tmp` specified as an allowed directory, file operations using `/tmp/...` paths are incorrectly rejected as being outside allowed directories.\n\n## Root Cause\n\nOn macOS, `/tmp` is a symlink to `/private/tmp`:\n\n```\n$ ls -la /tmp\nlrwxr-xr-x@ 1 root  wheel  11 Nov 30  2024 /tmp -> private/tmp\n```\n\nThe server appears to resolve paths to their canonical (real) form before checking against allowed directories. When a user specifies `/tmp` as allowed and passes `/tmp/foo.txt`, the server resolves it to `/private/tmp/foo.txt`, which doesn't match the allowed path `/tmp`.\n\n## Reproduction Steps\n\n1. Start server-filesystem with `/tmp` as allowed directory:\n   ```bash\n   npx -y @modelcontextprotocol/server-filesystem /tmp\n   ```\n\n2. Call `read_file` with a path under `/tmp`:\n   ```json\n   {\"path\": \"/tmp/test.txt\"}\n   ```\n\n3. Observe rejection error indicating path is outside allowed directories\n\n## Expected Behavior\n\nEither:\n- The server should resolve allowed directories to their canonical paths during initialization, OR\n- The server should compare paths consistently (both resolved or both as-specified)\n\nWhen `/tmp` is specified as allowed, files under `/tmp/...` should be accessible.\n\n## Actual Behavior\n\nFiles under `/tmp/` are rejected as being outside allowed directories because the path resolves to `/private/tmp/...` internally.\n\n## Environment\n\n- macOS (any version with /tmp -> /private/tmp symlink)\n- @modelcontextprotocol/server-filesystem (current npm version)\n\n## Suggested Fix\n\nIn the path validation logic, resolve allowed directories to their canonical paths at initialization time using `fs.realpathSync()`, so that `/tmp` becomes `/private/tmp` in the allow list. This ensures consistent comparison with resolved request paths.\n\n---\n\n## Discovery\n\nThis bug was discovered using **[Bellwether](https://github.com/dotsetlabs/bellwether)**, a structural drift detection and behavioral testing tool for MCP servers. Bellwether automatically explores MCP server capabilities and identifies edge cases through systematic testing.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3253/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3254
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3232",
      "id": 3830762471,
      "node_id": "I_kwDONRaG_87kVMvn",
      "number": 3232,
      "title": "Filesystem MCP server fails to start when any allowed directory is unavailable",
      "user": {
        "login": "smith-and-web",
        "id": 17660416,
        "node_id": "MDQ6VXNlcjE3NjYwNDE2",
        "avatar_url": "https://avatars.githubusercontent.com/u/17660416?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/smith-and-web",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-19T18:17:55Z",
      "updated_at": "2026-01-19T18:17:55Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nThe @modelcontextprotocol/server-filesystem fails to start entirely when any of the configured allowed directories is unavailable (unmounted network volume, disconnected external drive, etc.).\n\n**To Reproduce**\n1. Configure filesystem MCP with multiple allowed directories, including a network mount\n2. Disconnect/unmount the network volume\n3. Restart Claude Desktop\n4. Observe that filesystem MCP fails to start\n\n**Expected behavior**\n- Server should start successfully\n- Log a warning about unavailable paths\n- Serve the directories that ARE accessible\n- Optionally retry unavailable paths periodically\n\n**Logs**\n```\nError accessing directory /Users/josh.smith/Projects: Error: ENOENT: no such file or directory, stat '/Users/josh.smith/Projects'\n    at async Object.stat (node:internal/fs/promises:1040:18)\n    at async file:///Users/josh.smith/.npm/_npx/a3241bba59c344f5/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js:43:23\n    at async Promise.all (index 1)\n    at async file:///Users/josh.smith/.npm/_npx/a3241bba59c344f5/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js:41:1 {\n  errno: -2,\n  code: 'ENOENT',\n  syscall: 'stat',\n  path: '/Users/josh.smith/Projects'\n}\n2026-01-19T17:51:52.024Z [filesystem] [info] Server transport closed { metadata: undefined }\n2026-01-19T17:51:52.024Z [filesystem] [info] Client transport closed { metadata: undefined }\n2026-01-19T17:51:52.024Z [filesystem] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log. { metadata: undefined }\n2026-01-19T17:51:52.024Z [filesystem] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) { metadata: { context: 'connection', stack: undefined } }\n2026-01-19T17:51:52.024Z [filesystem] [info] Client transport closed { metadata: undefined }\n2026-01-19T17:51:58.217Z [filesystem] [info] Client transport closed { metadata: undefined }\n2026-01-19T17:51:58.216Z [filesystem] [info] Shutting down server... { metadata: undefined }\n```\n\n**Additional context**\nEnvironment:\n\nOS: macOS 26.1\nClaude Desktop: 1.0.3218\nMCP Server: @modelcontextprotocol/server-filesystem (latest)\n\nImpact:\nThis makes the filesystem MCP unreliable for any setup involving:\n\nNetwork shares/NAS devices\nExternal drives\nMounted volumes\nAny path that might be temporarily unavailable\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3232/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3277
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3228",
      "id": 3827789659,
      "node_id": "I_kwDONRaG_87kJ29b",
      "number": 3228,
      "title": "Enable full HTTP elicitation support after SDK streaming API is available",
      "user": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-19T03:01:58Z",
      "updated_at": "2026-01-19T03:01:58Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Summary\n\nThe `simulate-research-query` tool in the Everything Server currently implements graceful degradation for elicitation on HTTP transport. When running over HTTP, elicitation attempts fail and the task uses a default interpretation instead of prompting the user.\n\nThis is because the SDK's `sendRequest` doesn't work for elicitation over HTTP - the connection is closed after the initial `CreateTaskResult` response.\n\n## Background\n\nThe SDK's streaming elicitation API (`elicitInputStream`) enables elicitation over HTTP by creating a new SSE stream. Once this is available in a released SDK version, we can upgrade to full HTTP elicitation support.\n\n## Changes needed\n\n1. Update `@modelcontextprotocol/sdk` dependency to version with streaming elicitation\n2. Replace try-catch `sendRequest` pattern with streaming API in `simulate-research-query.ts`\n3. Follow spec-compliant pattern:\n   - Set `input_required` status before elicitation (spec SHOULD)\n   - Use streaming elicitation (works over HTTP)\n   - Transition back to `working` after receiving input (spec SHOULD)\n\n## Current behavior\n\n| Transport | Elicitation | Task Completion |\n|-----------|-------------|-----------------|\n| STDIO | ✅ Works | ✅ Works |\n| HTTP | ❌ Graceful degradation | ✅ Works (uses default) |\n\n## Target behavior\n\n| Transport | Elicitation | Task Completion |\n|-----------|-------------|-----------------|\n| STDIO | ✅ Works | ✅ Works |\n| HTTP | ✅ Works (via streaming) | ✅ Works |",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3228/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3227",
      "id": 3827724953,
      "node_id": "I_kwDONRaG_87kJnKZ",
      "number": 3227,
      "title": "Airtable MCP for claude.ai",
      "user": {
        "login": "blackbox35468",
        "id": 33133287,
        "node_id": "MDQ6VXNlcjMzMTMzMjg3",
        "avatar_url": "https://avatars.githubusercontent.com/u/33133287?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/blackbox35468",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-19T02:24:42Z",
      "updated_at": "2026-01-19T02:24:42Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nThis is a feature request, not an exisiting problem. \n\n**Describe the solution you'd like**\nI would like the Airtable MCP for claude.ai to work. Currently I can only connect from Claude desktop. Please can you add this?\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3227/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3214",
      "id": 3813130765,
      "node_id": "I_kwDONRaG_87jR8IN",
      "number": 3214,
      "title": "MCP servers list(sub-page:https://mcpservers.org/servers/semaes111/MCP)",
      "user": {
        "login": "Astrit11",
        "id": 45109954,
        "node_id": "MDQ6VXNlcjQ1MTA5OTU0",
        "avatar_url": "https://avatars.githubusercontent.com/u/45109954?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Astrit11",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-14T13:03:17Z",
      "updated_at": "2026-01-14T13:03:40Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "I just want to clarify what exactly is this list of MCP servers in this particular url is it still actively maintained or is it just old url :\n\nhttps://mcpservers.org/servers/semaes111/MCP\n\n-Because not all registered MCP servers here https://mcpservers.org/ are show in the list ?",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3214/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3204",
      "id": 3804270626,
      "node_id": "I_kwDONRaG_87iwJAi",
      "number": 3204,
      "title": "Filesystem MCP: Server should wait inital roots to be loaded before handling tool calls",
      "user": {
        "login": "Shellishack",
        "id": 40737228,
        "node_id": "MDQ6VXNlcjQwNzM3MjI4",
        "avatar_url": "https://avatars.githubusercontent.com/u/40737228?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Shellishack",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2026-01-12T13:12:28Z",
      "updated_at": "2026-02-05T03:37:35Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nWhen intial roots are used in MCP client to connect to a file system server, tool calls can happen before initial roots are loaded. This causes the server to complain about:\n```\nUpdated allowed directories from MCP roots: 1 valid directories\nAccess denied - path outside allowed directories: C:\\temp not in\n```\n\n**Steps to replicate:**\n(I also documented how I discovered this issue here: https://github.com/modelcontextprotocol/servers/issues/3174#issuecomment-3738231331)\n\nClient code:\n```typescript\n  async function list() {\n    const transport = new StdioClientTransport({\n      command: \"node\",\n      args: [\"../mcp-servers/src/filesystem/dist/index.js\"],\n    });\n\n    if (!transport) {\n      throw new Error(\"Transport not available\");\n    }\n\n    // Initialize the client\n    const client = new MCPClient(\n      {\n        name: \"test-fs-client\",\n        version: \"1.0.0\",\n      },\n      {\n        capabilities: {\n          roots: {\n            listChanged: true,\n          },\n        },\n      }\n    );\n\n    client.setRequestHandler(ListRootsRequestSchema, async (notification) => {\n      console.log(\"Received roots/list_roots notification:\", notification);\n      return {\n        roots: [\n          {\n            uri: \"file:///C:/temp\",\n            name: \"My Project\",\n          },\n        ],\n      };\n    });\n\n    await client.connect(transport, {});\n\n    const result = await client?.callTool({\n      name: \"list_directory\",\n      arguments: {\n        path: \"C:/temp\",\n      },\n    });\n\n    await client.close();\n\n    // @ts-expect-error ignore type\n    const stdout = result?.content[0]?.text;\n    // @ts-expect-error ignore type\n    const stderr = result?.content[1]?.text;\n    let output = `\\\nstdout:\n\\`\\`\\`\n${stdout}\n\\`\\`\\`\n`;\n    if (stderr) {\n      output += `\\\nstderr:\n\\`\\`\\`\n${stderr}\n\\`\\`\\`\n`;\n    }\n    return output;\n  }\n\n\nconst result = await list();\nconsole.log(\"Command output:\", result);\n```\n\nTerminal output\n```bash\nUsage: mcp-server-filesystem [allowed-directory] [additional-directories...]\nNote: Allowed directories can be provided via:\n  1. Command-line arguments (shown above)\n  2. MCP roots protocol (if client supports it)\nAt least one directory must be provided by EITHER method for the server to operate.\nSecure MCP Filesystem Server running on stdio\nStarted without allowed directories - waiting for client to provide roots via MCP protocol\nReceived roots/list_roots notification: { method: 'roots/list' }\nUpdated allowed directories from MCP roots: 1 valid directories\nCommand output: stdout:\nAccess denied - path outside allowed directories: C:\\temp not in\n```\n\n**Describe the solution you'd like**\n- Option 1: The Roots Protocal should include a notification event after initial roots are loaded/updated, then the client can know when to handle subsequent operations. https://github.com/modelcontextprotocol/servers/blob/861c11b786b3efbc87eb2e878a4039d33846a031/src/filesystem/index.ts#L687-L696\n- Option 2: The file server can queue up incoming requests until initial roots are loaded, so that client developers do need to handle this explicitly.\n- Option 3: Or, it should mention in https://modelcontextprotocol.io/specification/2025-11-25/client/roots#implementation-guidelines that the client might need to wait a little for server to load initial roots. \n\n**Describe alternatives you've considered**\nThis is a temporary workaround that I am not a fan of. But it works for now by waiting a little before client calls the server.\n```typescript\n    client.setRequestHandler(ListRootsRequestSchema, async (notification) => {\n      console.log(\"Received roots/list_roots notification:\", notification);\n      return {\n        roots: [\n          {\n            uri: \"file:///C:/temp\",\n            name: \"My Project\",\n          },\n        ],\n      };\n    });\n\n    await client.connect(transport, {});\n\n    // wait 1 second \n    await new Promise((resolve) => setTimeout(resolve, 1000));\n\n    const result = await client?.callTool({\n      name: \"list_directory\",\n      arguments: {\n        path: \"C:/temp\",\n      },\n    });\n\n``` \n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3204/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3201",
      "id": 3801022932,
      "node_id": "I_kwDONRaG_87ijwHU",
      "number": 3201,
      "title": "[Feature]: Unify the names of the Time MCP server tools",
      "user": {
        "login": "Makishima",
        "id": 5548003,
        "node_id": "MDQ6VXNlcjU1NDgwMDM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/5548003?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Makishima",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-11T09:39:06Z",
      "updated_at": "2026-01-11T09:42:51Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Hey!\n\nI'm using the Time MCP server via the Docker MCP Toolkit.\n\nMost MCPs with multiple tools available have a prefix for them.\n\nBut Time's tool is registered without one.\n\n> Looking at the available tools, I can see several MCP-related tools:\n> 1. MCP_DOCKER_browser_* - Browser automation tools (click, navigate, snapshot, etc.)\n> 2. MCP_DOCKER_code-mode - Create JavaScript-enabled tools combining multiple MCP servers\n> 3. **MCP_DOCKER_convert_time - Timezone conversion**\n> 4. MCP_DOCKER_fetch - Fetch URLs from internet\n> 5. MCP_DOCKER_get-library-docs - Fetch library documentation\n> 6. **MCP_DOCKER_get_current_time - Get current time in timezone**\n> 7. MCP_DOCKER_git_* - Git operations (add, checkout, commit, diff, etc.)\n> 8. MCP_DOCKER_mcp-* - MCP server management (find, add, remove, config, etc.)\n> 9. MCP_DOCKER_resolve-library-id - Resolve package names to library IDs\n> 10. MCP_DOCKER_sequentialthinking - For complex problem solving\n\nIs it possible to add a 'time_' prefix to make similar tools easier to identify, coming from a single MCP server?",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3201/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3274
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3199",
      "id": 3800148161,
      "node_id": "I_kwDONRaG_87igajB",
      "number": 3199,
      "title": "filesystem edit_file: EPERM error when renaming over locked files on Windows",
      "user": {
        "login": "kuviki",
        "id": 13548063,
        "node_id": "MDQ6VXNlcjEzNTQ4MDYz",
        "avatar_url": "https://avatars.githubusercontent.com/u/13548063?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/kuviki",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-10T18:01:11Z",
      "updated_at": "2026-01-10T18:01:11Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nThe `filesystem_edit_file` MCP tool failed on Windows operating systems with the following error:\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Create a text file `test.txt` with some content\n2. Open the file in a text editor (e.g., VS Code, Notepad) - this adds a file read lock\n3. Attempt to run the following Node.js script to overwrite the file:\n\n```javascript\nimport fs from \"fs/promises\";\nimport { randomBytes } from 'crypto';\n\nconst filePath = './test.txt';\nconst tempPath = `${filePath}.${randomBytes(16).toString('hex')}.tmp`;\n\nasync function editFile() {\n  await fs.writeFile(tempPath, 'updated content', 'utf-8');\n  await fs.rename(tempPath, filePath); // Throws EPERM on Windows\n}\n\neditFile();\n```\n\n4. Observe the `EPERM` error\n\n**Expected behavior**\nThe tool should successfully overwrite files on Windows, just as it does on Linux and macOS platforms.\n\n**Logs**\nError: EPERM: operation not permitted, rename 'C:\\test.txt.abc123.tmp' -> 'C:\\test.txt'.\n\n**Additional context**\nOn Windows, `fs.rename()` cannot overwrite existing files when the file is locked (e.g., opened in an editor), resulting in `EPERM` error. This is a Windows-specific limitation of the Node.js `fs.rename()` function.\n\n**Solution Applied**\nReplaced `fs.rename()` with `fs.cp()` which supports the `force: true` option to overwrite existing files:\n\n```javascript\nconst tempPath = `${filePath}.${randomBytes(16).toString('hex')}.tmp`;\ntry {\n  await fs.writeFile(tempPath, modifiedContent, 'utf-8');\n  // Use cp with force option - works on all platforms including Windows\n  await fs.cp(tempPath, filePath, { force: true });\n} finally {\n  try {\n    await fs.unlink(tempPath);\n  } catch {}\n}\n```\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3199/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3296
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3198",
      "id": 3800084277,
      "node_id": "I_kwDONRaG_87igK81",
      "number": 3198,
      "title": "feat: Add block-no-verify to prevent AI agents from bypassing git hooks",
      "user": {
        "login": "tupe12334",
        "id": 61761153,
        "node_id": "MDQ6VXNlcjYxNzYxMTUz",
        "avatar_url": "https://avatars.githubusercontent.com/u/61761153?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/tupe12334",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-10T17:13:23Z",
      "updated_at": "2026-01-10T17:13:23Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Summary\n\nAdd the [`block-no-verify`](https://www.npmjs.com/package/block-no-verify) package to prevent AI coding agents from bypassing git hooks using the `--no-verify` flag.\n\n## Problem\n\nAI coding agents (Claude Code, Gemini CLI) can bypass pre-commit hooks by running `git commit --no-verify`, which defeats the purpose of code quality checks enforced by git hooks.\n\n## Proposed Solution\n\nIntegrate `block-no-verify` (v1.1.1) which:\n- Monitors git commands (`commit`, `push`, `merge`, `cherry-pick`, `rebase`, `am`)\n- Blocks execution when `--no-verify` or `-n` flag is detected\n- Supports both Claude Code and Gemini CLI\n\n### Configuration Required\n\n**For Claude Code** - Create `.claude/settings.json`:\n```json\n{\n  \"hooks\": {\n    \"PreToolUse\": [\n      {\n        \"matcher\": \"Bash\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"npx block-no-verify\"\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n**For Gemini CLI** - Create `.gemini/settings.json`:\n```json\n{\n  \"hooks\": {\n    \"BeforeTool\": [\n      {\n        \"matcher\": \"shell\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"npx block-no-verify\"\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n## Benefits\n\n- Enforces code quality checks even when using AI agents\n- MIT licensed, lightweight dependency\n- No changes needed to existing git hooks setup\n\n## References\n\n- Package: https://www.npmjs.com/package/block-no-verify\n- Repository: https://github.com/tupe12334/block-no-verify",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3198/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3177",
      "id": 3779095110,
      "node_id": "I_kwDONRaG_87hQGpG",
      "number": 3177,
      "title": "Add Source Library - historical texts with DOI citations",
      "user": {
        "login": "JDerekLomas",
        "id": 189066687,
        "node_id": "U_kgDOC0Ttvw",
        "avatar_url": "https://avatars.githubusercontent.com/u/189066687?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/JDerekLomas",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2026-01-04T10:29:54Z",
      "updated_at": "2026-01-04T10:29:54Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Request to add Source Library MCP Server\n\nSearch and cite rare historical texts (Hermetic, alchemical, Renaissance) with DOI-backed academic citations.\n\n**Suggested entry:**\n```markdown\n- **[Source Library](https://github.com/Embassy-of-the-Free-Mind/sourcelibrary-v2/tree/main/mcp-server)** - Search and cite 500+ translated Latin and German manuscripts (alchemy, Hermeticism, Renaissance philosophy) with DOI-backed academic citations.\n```\n\n## Details\n\n- **npm:** https://www.npmjs.com/package/@source-library/mcp-server\n- **Docs:** https://sourcelibrary.org/developers\n- **Website:** https://sourcelibrary.org\n\n## Install\n```json\n{\n  \"mcpServers\": {\n    \"source-library\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@source-library/mcp-server\"]\n    }\n  }\n}\n```\n\n## Features\n- Search translated historical texts (15th-18th century)\n- Get quotes with formatted citations (inline, footnote, DOI URL)\n- Access book metadata and AI-generated summaries\n- No API key required\n\n## Tools\n- `search_library` - Search across all translated books\n- `get_quote` - Get a passage with formatted citations  \n- `get_book` - Get detailed book information\n\nHappy to submit a PR if preferred!",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3177/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3174",
      "id": 3776446172,
      "node_id": "I_kwDONRaG_87hF_7c",
      "number": 3174,
      "title": "Filesystem server: roots are not working on Windows",
      "user": {
        "login": "fipro78",
        "id": 3041955,
        "node_id": "MDQ6VXNlcjMwNDE5NTU=",
        "avatar_url": "https://avatars.githubusercontent.com/u/3041955?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/fipro78",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2026-01-02T14:10:51Z",
      "updated_at": "2026-01-12T12:56:03Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nIf I configure the filesystem server in VS Code mcp.json, it automatically sets the workspace folder as root. This fails on Windows with this error (e.g. using C:\\temp as workspace folder)\n\n```\nSkipping invalid path or inaccessible: file:///c%3A/temp\nNo valid root directories provided by client\n```\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Create a folder _C:\\temp_ on Windows\n2. Open VS Code in that folder\n3. Create a _.vscode/mcp.json_\n```json\n\"servers\": {\n    \"filesystem\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-filesystem@latest\"\n      ]\n    },\n  },\n  \"inputs\": []\n}\n```\n4. Start the filesystem server\n5. Check the _Output_ of the filesystem server\n\nIf you pass a folder manually via the `args` you will notice that this folder will be used instead of the workspace folder that should be provided as root.\n\n**Expected behavior**\nThe workspace folder on Windows should be used as root.\n\n**Logs**\n```\n2026-01-02 14:59:42.734 [info] Starting server filesystem\n2026-01-02 14:59:42.735 [info] Connection state: Starting\n2026-01-02 14:59:42.735 [info] Starting server from LocalProcess extension host\n2026-01-02 14:59:42.747 [info] Connection state: Starting\n2026-01-02 14:59:42.747 [info] Connection state: Running\n2026-01-02 14:59:44.911 [warning] [server stderr] Secure MCP Filesystem Server running on stdio\n2026-01-02 14:59:44.930 [info] Discovered 14 tools\n2026-01-02 14:59:44.931 [warning] [server stderr] Skipping invalid path or inaccessible: file:///c%3A/temp\n2026-01-02 14:59:44.932 [warning] [server stderr] No valid root directories provided by client\n```\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3174/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3173",
      "id": 3775793999,
      "node_id": "I_kwDONRaG_87hDgtP",
      "number": 3173,
      "title": "Memory MCP JSON Parsing Error - All Tools Failing",
      "user": {
        "login": "FranzKiller",
        "id": 202158279,
        "node_id": "U_kgDODAywxw",
        "avatar_url": "https://avatars.githubusercontent.com/u/202158279?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/FranzKiller",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2026-01-02T07:42:33Z",
      "updated_at": "2026-02-05T03:36:02Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Describe the bug\n\nAll Memory MCP tools fail with the same JSON parsing error: `Unexpected non-whitespace character after JSON at position 175 (line 1 column 176)`. This occurs even for simple read operations like `read_graph`, `search_nodes`, and `open_nodes`.\n\n## To Reproduce\n\nSteps to reproduce the behavior:\n\n1. Configure Memory Tool MCP server in `~/.cursor/mcp.json`:n\n   \"Memory Tool\": {\n       \"command\": \"cmd\",\n       \"args\": [\n           \"/c\",\n           \"npx\",\n           \"-y\",\n           \"@modelcontextprotocol/server-memory\"\n       ]\n   }\n   2. Restart Cursor IDE to load the MCP server\n\n3. Attempt to use any Memory Tool MCP function:\n   - `read_graph()` - fails with JSON parsing error\n   - `search_nodes(\"query\")` - fails with JSON parsing error\n   - `open_nodes([\"entity\"])` - fails with JSON parsing error\n   - `create_entities(...)` - fails with JSON parsing error\n\n4. All tools return the same error: `Unexpected non-whitespace character after JSON at position 175 (line 1 column 176)`\n\n## Expected behavior\n\nMemory Tool MCP tools should work correctly, especially read operations like `read_graph` which should return an empty graph if no data exists.\n\n## Environment\n\n- **Server Version**: `@modelcontextprotocol/server-memory@2025.11.25` (latest)\n- **IDE**: Cursor IDE (Windows)\n- **OS**: Windows 10.0.22631\n- **Node.js**: (via npx)\n- **Data Directory**: `C:\\Users\\Franc\\.cursor\\projects\\c-ProgettiIscobol-sn22\\mcps\\user-Memory_Tool` (empty - no existing data)\n\n## Logs\n\nAll tool calls return:\nRestart Cursor IDE to load the MCP server\nAttempt to use any Memory Tool MCP function:\nread_graph() - fails with JSON parsing error\nsearch_nodes(\"query\") - fails with JSON parsing error\nopen_nodes([\"entity\"]) - fails with JSON parsing error\ncreate_entities(...) - fails with JSON parsing error\nAll tools return the same error: Unexpected non-whitespace character after JSON at position 175 (line 1 column 176)\nExpected behavior\nMemory Tool MCP tools should work correctly, especially read operations like read_graph which should return an empty graph if no data exists.\nEnvironment\nServer Version: @modelcontextprotocol/server-memory@2025.11.25 (latest)\nIDE: Cursor IDE (Windows)\nOS: Windows 10.0.22631\nNode.js: (via npx)\nData Directory: C:\\Users\\Franc\\.cursor\\projects\\c-ProgettiIscobol-sn22\\mcps\\user-Memory_Tool (empty - no existing data)\nLogs\nAll tool calls return:\nError: Unexpected non-whitespace character after JSON at position 175 (line 1 columnsonl` file exists)- Using the simplest possible operations (`read_graph` with no parameters)- The server version is the latest available (2025.11.25)## Additional context- The error position (175) suggests the server is returning a malformed JSON response- The problem occurs even with an empty knowledge graph (no existing data)- All tools fail with the same error, suggesting a systemic issue rather than data corruption- The server starts correctly (no startup errors)- The MCP connection is established (tools are recognized)## Related Issues- #3144 - Schema Validation Error (different issue, related to additional properties)- #3137 - `open_nodes` returns empty relations (different issue, related to relations)## Suggested Solutions1. **Investigate JSON serialization**: The error suggests the server is generating malformed JSON responses2. **Check empty state handling**: The error occurs even with no data, suggesting the server may not handle empty graphs correctly3. **Verify MCP protocol compliance**: Ensure the server's JSON responses comply with MCP protocol specifications\nThis error occurs even when:\nThe data directory is completely empty (no memory.jsonl file exists)\nUsing the simplest possible operations (read_graph with no parameters)\nThe server version is the latest available (2025.11.25)\nAdditional context\nThe error position (175) suggests the server is returning a malformed JSON response\nThe problem occurs even with an empty knowledge graph (no existing data)\nAll tools fail with the same error, suggesting a systemic issue rather than data corruption\nThe server starts correctly (no startup errors)\nThe MCP connection is established (tools are recognized)\nRelated Issues\n#3144 - Schema Validation Error (different issue, related to additional properties)\n#3137 - open_nodes returns empty relations (different issue, related to relations)\nSuggested Solutions\nInvestigate JSON serialization: The error suggests the server is generating malformed JSON responses\nCheck empty state handling: The error occurs even with no data, suggesting the server may not handle empty graphs correctly\nVerify MCP protocol compliance: Ensure the server's JSON responses comply with MCP protocol specifications\nCopia e incolla questo testo nel campo attivo su GitHub.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3173/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3158",
      "id": 3765095015,
      "node_id": "I_kwDONRaG_87gaspn",
      "number": 3158,
      "title": "Add Primordia - AI Agent Economic Settlement",
      "user": {
        "login": "oerc-s",
        "id": 251724064,
        "node_id": "U_kgDODwEBIA",
        "avatar_url": "https://avatars.githubusercontent.com/u/251724064?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/oerc-s",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-12-27T21:26:10Z",
      "updated_at": "2025-12-27T21:26:10Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Primordia MCP Server\n\nEconomic settlement infrastructure for AI agents.\n\n**npm**: `@primordia1/mcp-server`\n**Repo**: https://github.com/oerc-s/primordia\n**Kernel**: https://clearing.kaledge.app\n\n### Tools\n- `verify_receipt` - Verify MSR/IAN/FC (FREE)\n- `emit_meter` - Emit compute/energy meters (FREE)\n- `net_receipts` - Net into signed IAN (PAID)\n- `open_credit_line` - Inter-agent credit (PAID)\n- `get_balance_sheet` - Audit-grade MBS (PAID)\n\n### Install\n```bash\nnpx -y @primordia1/mcp-server\n```\n\nCategory: Finance & Fintech",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3158/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3153",
      "id": 3763089237,
      "node_id": "I_kwDONRaG_87gTC9V",
      "number": 3153,
      "title": "Is it possible to auto-call between multiple MCPs? It might involve defining an `outputSchema` field and linking the `outputSchema` and `inputSchema`.",
      "user": {
        "login": "lijie1024512",
        "id": 59865289,
        "node_id": "MDQ6VXNlcjU5ODY1Mjg5",
        "avatar_url": "https://avatars.githubusercontent.com/u/59865289?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/lijie1024512",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-12-26T09:10:45Z",
      "updated_at": "2025-12-26T09:11:55Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "I want the output data of the call to mcp to contain outSchema, which contains field descriptions and type definitions, just like the inputSchema specification, if we achieve such a solution, and then clearly state in the prompt or skill that outputShchema can be used as an inputSchema, can we achieve automatic calls to multiple mcps?\nAn example of simple code to define an outputSchema is shown below\n\n`import { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";  \nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";  \nimport { z } from \"zod\";  \n  \n// Define output schemas using Zod  \nconst AlertInfoSchema = z.object({  \n  event: z.string().describe(\"Type of weather event\"),  \n  area: z.string().describe(\"Affected area description\"),  \n  severity: z.string().describe(\"Severity level of the alert\"),  \n  description: z.string().describe(\"Detailed description of the alert\")  \n});  \n  \nconst WeatherAlertsResponseSchema = z.object({  \n  alerts: z.array(AlertInfoSchema).describe(\"List of active weather alerts\"),  \n  totalCount: z.number().describe(\"Total number of alerts\"),  \n  state: z.string().describe(\"State code for the alerts\")  \n});  \n  \nconst NWS_API_BASE = \"https://api.weather.gov\";  \nconst USER_AGENT = \"weather-app/1.0\";  \n  \n// Helper function for making NWS API requests  \nasync function makeNWSRequest<T>(url: string): Promise<T | null> {  \n  const headers = {  \n    \"User-Agent\": USER_AGENT,  \n    Accept: \"application/geo+json\",  \n  };  \n  \n  try {  \n    const response = await fetch(url, { headers });  \n    if (!response.ok) {  \n      throw new Error(`HTTP error! status: ${response.status}`);  \n    }  \n    return (await response.json()) as T;  \n  } catch (error) {  \n    console.error(\"Error making NWS request:\", error);  \n    return null;  \n  }  \n}  \n  \ninterface AlertFeature {  \n  properties: {  \n    event?: string;  \n    areaDesc?: string;  \n    severity?: string;  \n    status?: string;  \n    headline?: string;  \n  };  \n}  \n  \n// Create server instance  \nconst server = new McpServer({  \n  name: \"weather\",  \n  version: \"1.0.0\",  \n});  \n  \n// Register weather tools with outputSchema  \nserver.registerTool(  \n  \"get-alerts\",  \n  {  \n    title: \"Get Weather Alerts\",  \n    description: \"Get weather alerts for a state\",  \n    inputSchema: {  \n      state: z.string().length(2).describe(\"Two-letter state code (e.g. CA, NY)\"),  \n    },  \n    outputSchema: WeatherAlertsResponseSchema, // 添加outputSchema  \n  },  \n  async ({ state }) => {  \n    const stateCode = state.toUpperCase();  \n    const alertsUrl = `${NWS_API_BASE}/alerts?area=${stateCode}`;  \n    const alertsData = await makeNWSRequest<any>(alertsUrl);  \n  \n    if (!alertsData) {  \n      return {  \n        content: [  \n          {  \n            type: \"text\",  \n            text: \"Failed to retrieve alerts data\",  \n          },  \n        ],  \n        structuredContent: {  \n          alerts: [],  \n          totalCount: 0,  \n          state: stateCode  \n        }  \n      };  \n    }  \n  \n    const features = alertsData.features || [];  \n    if (features.length === 0) {  \n      return {  \n        content: [  \n          {  \n            type: \"text\",  \n            text: `No active alerts for ${stateCode}`,  \n          },  \n        ],  \n        structuredContent: {  \n          alerts: [],  \n          totalCount: 0,  \n          state: stateCode  \n        }  \n      };  \n    }  \n  \n    // Transform alerts to match outputSchema  \n    const alerts = features.map((feature: AlertFeature) => ({  \n      event: feature.properties.event || \"Unknown\",  \n      area: feature.properties.areaDesc || \"Unknown\",  \n      severity: feature.properties.severity || \"Unknown\",  \n      description: feature.properties.headline || \"No description available\"  \n    }));  \n  \n    const alertsText = `Active alerts for ${stateCode}:\\n\\n${alerts.map(alert =>   \n      `Event: ${alert.event}\\nArea: ${alert.area}\\nSeverity: ${alert.severity}\\nDescription: ${alert.description}\\n---`  \n    ).join(\"\\n\")}`;  \n  \n    return {  \n      content: [  \n        {  \n          type: \"text\",  \n          text: alertsText,  \n        },  \n      ],  \n      structuredContent: {  \n        alerts,  \n        totalCount: alerts.length,  \n        state: stateCode  \n      }  \n    };  \n  },  \n);  \n  \n// Start the server  \nasync function main() {  \n  const transport = new StdioServerTransport();  \n  await server.connect(transport);  \n  console.error(\"Weather MCP Server running on stdio\");  \n}  \n  \nmain().catch((error) => {  \n  console.error(\"Fatal error in main():\", error);  \n  process.exit(1);  \n});`",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3153/reactions",
        "total_count": 5,
        "+1": 1,
        "-1": 0,
        "laugh": 1,
        "hooray": 1,
        "confused": 0,
        "heart": 1,
        "rocket": 1,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3146",
      "id": 3750362831,
      "node_id": "I_kwDONRaG_87fif7P",
      "number": 3146,
      "title": "Add PostgreSQL MCP Server (postgresql-mcp)",
      "user": {
        "login": "JaviMaligno",
        "id": 25660622,
        "node_id": "MDQ6VXNlcjI1NjYwNjIy",
        "avatar_url": "https://avatars.githubusercontent.com/u/25660622?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/JaviMaligno",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-12-20T20:02:21Z",
      "updated_at": "2025-12-20T20:02:21Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# 📋 MCP Server Submission\n\n## Server Information\n\n**Name**: MCP Server for PostgreSQL  \n**Package**: `postgresql-mcp`  \n**Current Version**: 0.2.0  \n**Author**: Javier Aguilar  \n**Repository**: https://github.com/JaviMaligno/postgres_mcp  \n**PyPI Package**: https://pypi.org/project/postgresql-mcp/\n\n## 🎯 Value Proposition\n\nThis server enables AI assistants to interact with PostgreSQL databases safely and efficiently. It provides tools for querying, schema exploration, and performance analysis with a security-first design.\n\n## 🔐 Key Features\n\n- **14 Tools**: Comprehensive database operations\n- **Query Execution**: Run SELECT queries with results limiting\n- **Schema Exploration**: List schemas, tables, views, functions\n- **Table Analysis**: Describe structure, indexes, constraints\n- **Performance Stats**: Table statistics and EXPLAIN plans\n- **Column Search**: Find columns across all tables\n- **Security First**: SQL injection prevention, read-only by default\n- **Write Operations**: Optional INSERT/UPDATE/DELETE (disabled by default)\n\n## 🛡️ Security Features\n\n- **Read-Only Default**: Write operations require explicit opt-in\n- **SQL Validation**: Blocks dangerous operations and injection attempts\n- **Identifier Sanitization**: Safe handling of schema/table names\n- **Credential Protection**: Passwords stored as SecretStr\n- **Query Limits**: Configurable MAX_ROWS to prevent DoS\n\n## 🚀 Installation\n\n```bash\n# Install via pipx (recommended)\npipx install postgresql-mcp\n\n# Or via pip\npip install postgresql-mcp\n```\n\n### Claude Desktop Configuration\n\n```json\n{\n  \"mcpServers\": {\n    \"postgres\": {\n      \"command\": \"postgresql-mcp\",\n      \"env\": {\n        \"POSTGRES_HOST\": \"localhost\",\n        \"POSTGRES_PORT\": \"5432\",\n        \"POSTGRES_USER\": \"your-user\",\n        \"POSTGRES_PASSWORD\": \"your-password\",\n        \"POSTGRES_DB\": \"your-database\"\n      }\n    }\n  }\n}\n```\n\n## 🛠️ Available Tools\n\n| Tool | Description |\n|------|-------------|\n| `query` | Execute read-only SQL queries |\n| `execute` | Execute write operations (when enabled) |\n| `explain_query` | Get EXPLAIN plan for queries |\n| `list_schemas` | List database schemas |\n| `list_tables` | List tables in a schema |\n| `describe_table` | Get table structure |\n| `table_stats` | Get table statistics |\n| `list_indexes` | List table indexes |\n| `list_constraints` | List table constraints |\n| `list_views` | List views in schema |\n| `describe_view` | Get view definition |\n| `list_functions` | List functions/procedures |\n| `get_database_info` | Get database info |\n| `search_columns` | Search columns by name |\n\n## 📊 Quality Metrics\n\n- **Test Coverage**: Comprehensive test suite\n- **Documentation**: Full README with examples\n- **Type Safety**: Pydantic models throughout\n- **Security**: Multiple security layers\n- **Maintenance**: Active development\n\n## 🛠️ Technical Details\n\n- **Language**: Python 3.10+\n- **Framework**: FastMCP\n- **Database Driver**: psycopg2\n- **Transport**: STDIO\n- **Dependencies**: psycopg2-binary, pydantic, pydantic-settings\n\n## 🔗 Links & Resources\n\n- **Repository**: https://github.com/JaviMaligno/postgres_mcp\n- **PyPI**: https://pypi.org/project/postgresql-mcp/\n- **Documentation**: [README.md](https://github.com/JaviMaligno/postgres_mcp#readme)\n\n## 🎯 Target Audience\n\n- Database administrators seeking AI-assisted query building\n- Developers needing to explore unfamiliar database schemas\n- Teams wanting natural language database interactions\n- Anyone working with PostgreSQL databases\n\n---\n\n**Submission Date**: December 20, 2025",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3146/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3145",
      "id": 3750362677,
      "node_id": "I_kwDONRaG_87fif41",
      "number": 3145,
      "title": "Add Bitbucket MCP Server (mcp-server-bitbucket)",
      "user": {
        "login": "JaviMaligno",
        "id": 25660622,
        "node_id": "MDQ6VXNlcjI1NjYwNjIy",
        "avatar_url": "https://avatars.githubusercontent.com/u/25660622?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/JaviMaligno",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-12-20T20:02:08Z",
      "updated_at": "2025-12-20T20:02:08Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# 📋 MCP Server Submission\n\n## Server Information\n\n**Name**: MCP Server for Bitbucket API  \n**Package**: `mcp-server-bitbucket`  \n**Current Version**: 0.10.0  \n**Author**: Javier Aguilar  \n**Repository**: https://github.com/JaviMaligno/mcp-server-bitbucket  \n**PyPI Package**: https://pypi.org/project/mcp-server-bitbucket/\n\n## 🎯 Value Proposition\n\nThis server provides comprehensive Bitbucket API integration for MCP clients, enabling AI assistants to manage repositories, pull requests, pipelines, and more directly through natural language.\n\n## 🔐 Key Features\n\n- **58 Tools**: Complete coverage of Bitbucket API operations\n- **Repository Management**: Create, list, update, delete repositories\n- **Pull Requests**: Full PR lifecycle management (create, review, merge)\n- **Pipelines**: Trigger, monitor, and manage CI/CD pipelines\n- **Branch Operations**: List, create, and manage branches\n- **Commits & Tags**: Browse commit history and manage tags\n- **Deployments**: Manage deployment environments\n- **Webhooks**: Configure repository webhooks\n- **Branch Restrictions**: Set up branch protection rules\n- **Source Browsing**: Navigate and read repository files\n- **Permissions**: Manage repository and workspace permissions\n\n## 🚀 Installation\n\n```bash\n# Install via pipx (recommended)\npipx install mcp-server-bitbucket\n\n# Or via pip\npip install mcp-server-bitbucket\n```\n\n### Claude Desktop Configuration\n\n```json\n{\n  \"mcpServers\": {\n    \"bitbucket\": {\n      \"command\": \"mcp-server-bitbucket\",\n      \"env\": {\n        \"BITBUCKET_WORKSPACE\": \"your-workspace\",\n        \"BITBUCKET_EMAIL\": \"your-email@example.com\",\n        \"BITBUCKET_API_TOKEN\": \"your-token\"\n      }\n    }\n  }\n}\n```\n\n## 📊 Quality Metrics\n\n- **Test Coverage**: Comprehensive test suite with pytest\n- **Documentation**: Full README with setup guides and examples\n- **Type Safety**: Full type hints throughout codebase\n- **Security**: Uses Basic Auth with app passwords (no OAuth complexity)\n- **Maintenance**: Active development with regular updates\n\n## 🛠️ Technical Details\n\n- **Language**: Python 3.10+\n- **Framework**: FastMCP\n- **Transport**: STDIO (standard) and HTTP (for remote deployment)\n- **Dependencies**: httpx, pydantic, pydantic-settings\n\n## 🔗 Links & Resources\n\n- **Repository**: https://github.com/JaviMaligno/mcp-server-bitbucket\n- **PyPI**: https://pypi.org/project/mcp-server-bitbucket/\n- **Documentation**: [README.md](https://github.com/JaviMaligno/mcp-server-bitbucket#readme)\n\n## 🎯 Target Audience\n\n- Bitbucket users seeking AI-powered repository management\n- Development teams wanting to automate Bitbucket workflows\n- Organizations using Bitbucket Pipelines for CI/CD\n- Developers who prefer Bitbucket over GitHub\n\n---\n\n**Submission Date**: December 20, 2025",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3145/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3144",
      "id": 3750190586,
      "node_id": "I_kwDONRaG_87fh136",
      "number": 3144,
      "title": "Memory MCP  Schema Validation Error on read_graph for entities with additional properties",
      "user": {
        "login": "pout8",
        "id": 204816843,
        "node_id": "U_kgDODDVByw",
        "avatar_url": "https://avatars.githubusercontent.com/u/204816843?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/pout8",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-12-20T16:15:25Z",
      "updated_at": "2026-01-12T16:05:26Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Describe the bug\n\nThe `read_graph` tool fails when it tries to read a knowledge graph from a `memory.jsonl` file that contains an entity with properties not defined in the official schema (`name`, `entityType`, `observations`). This creates an inconsistency where the server can store data that the client-side validation for `read_graph` will later reject, making it impossible to retrieve the stored memory.\n\n### To Reproduce\n\nSteps to reproduce the behavior:\n1.  Start the `@modelcontextprotocol/server-memory`.\n2.  Ensure the `memory.jsonl` file contains at least one entity object with an extra, non-standard property. For example:\n    ```json\n    {\"name\": \"Test_Entity\", \"entityType\": \"test\", \"observations\": [\"Has an extra field\"], \"custom_id\": \"xyz-123\"}\n    ```\n3.  Use any MCP client (e.g., the VS Code extension) to execute the `read_graph` tool.\n4.  Observe that the tool execution fails.\n\n### Expected behavior\n\nThe `read_graph` tool should successfully execute without a fatal error. It should handle entities with extra properties gracefully, ideally by ignoring the non-standard properties and returning only the schema-defined fields (`name`, `entityType`, `observations`) for each entity. The presence of extra data in the storage file should not prevent the core functionality of reading the graph.\n\n### Logs\n\nThe following error is returned by the client when the bug occurs:\n\n```\nError: McpError: MCP error -32602: Structured content does not match the tool's output schema: data/entities/0 must NOT have additional properties\n```\n\n### Additional context\n\nThis bug highlights a discrepancy between the data persistence logic and the data retrieval/validation logic. To resolve this, I suggest two potential approaches:\n\n*   **Make the schema more flexible:** Allow additional properties in the client-side schema validation for `read_graph`. This would make the tool more robust.\n*   **Enforce strictness on write:** Actively strip or reject any non-standard properties during entity creation (`create_entity`) to ensure the integrity of the `memory.jsonl` file.\n\nOption 1 seems preferable as it adds flexibility and prevents data retrieval failures.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3144/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3161
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3137",
      "id": 3741903809,
      "node_id": "I_kwDONRaG_87fCOvB",
      "number": 3137,
      "title": "Memory MCP `open_nodes` returns empty relations array despite entity having relations in graph",
      "user": {
        "login": "broboa",
        "id": 216722296,
        "node_id": "U_kgDODOrreA",
        "avatar_url": "https://avatars.githubusercontent.com/u/216722296?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/broboa",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-12-18T07:55:55Z",
      "updated_at": "2025-12-18T09:56:47Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\n\nThe `open_nodes` tool returns an empty `relations` array even when the requested entity has outgoing relations in the knowledge graph. This makes it impossible to traverse the graph from a specific node without calling `read_graph` and filtering the entire dataset client-side.\n\n**To Reproduce**\n\n1. Create two entities and a relation between them:\n```javascript\ncreate_entities({\n  entities: [\n    { name: \"2025-12-17\", entityType: \"work-day\", observations: [] },\n    { name: \"incident/example\", entityType: \"incident\", observations: [\"Test incident\"] }\n  ]\n})\n\ncreate_relations({\n  relations: [{\n    from: \"2025-12-17\",\n    to: \"incident/example\",\n    relationType: \"worked-on\"\n  }]\n})\n```\n\n2. Call `open_nodes` on the source entity:\n```javascript\nopen_nodes({ names: [\"2025-12-17\"] })\n```\n\n3. Observe the result has an empty `relations` array\n\n**Expected behavior**\n\n`open_nodes` should return outgoing relations from the requested entity, similar to how graph databases return edges when querying a node. The response should include:\n\n```json\n{\n  \"entities\": [\n    {\n      \"type\": \"entity\",\n      \"name\": \"2025-12-17\",\n      \"entityType\": \"work-day\",\n      \"observations\": []\n    }\n  ],\n  \"relations\": [\n    {\n      \"type\": \"relation\",\n      \"from\": \"2025-12-17\",\n      \"to\": \"incident/example\",\n      \"relationType\": \"worked-on\"\n    }\n  ]\n}\n```\n\n**Logs**\n\nActual response from `open_nodes`:\n```json\n{\n  \"entities\": [\n    {\n      \"type\": \"entity\",\n      \"name\": \"2025-12-17\",\n      \"entityType\": \"work-day\",\n      \"observations\": []\n    }\n  ],\n  \"relations\": []\n}\n```\n\nCalling `read_graph` confirms the relation exists in the graph.\n\n**Additional context**\n\nThis limitation forces users to call `read_graph` (which returns the entire knowledge graph) and filter client-side to find relations for specific entities. This doesn't scale as the graph grows.\n\nUse case: Daily work tracking where date entities link to topic entities via `worked-on` relations. To generate a daily summary for a specific date, we need to find all topics linked from that date, but `open_nodes` doesn't provide this information.\n\nSuggested solutions:\n1. Include both incoming and outgoing relations in `open_nodes` response by default\n2. Add optional parameters to `open_nodes` to control relation inclusion (e.g., `includeRelations: \"both\" | \"outgoing\" | \"incoming\" | \"none\"`, `relationDepth: number`)\n\nNote: Both directions are useful for different queries. Outgoing relations answer \"what does this entity link to?\" (e.g., which topics were worked on this date?), while incoming relations answer \"what links to this entity?\" (e.g., which dates was this incident worked on?). Most graph databases provide both by default.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3137/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3297,
        3160
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3135",
      "id": 3738273080,
      "node_id": "I_kwDONRaG_87e0YU4",
      "number": 3135,
      "title": "Gemini Cli Integration",
      "user": {
        "login": "Cyber-Oscar",
        "id": 186063188,
        "node_id": "U_kgDOCxcZVA",
        "avatar_url": "https://avatars.githubusercontent.com/u/186063188?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Cyber-Oscar",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-12-17T10:24:39Z",
      "updated_at": "2025-12-17T10:24:39Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Allow Mcp server functionality inside gemini Cli",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3135/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3133",
      "id": 3738017896,
      "node_id": "I_kwDONRaG_87ezaBo",
      "number": 3133,
      "title": "Filesystem server: Restrict access: Configure a base directory and allowed directories inside that.",
      "user": {
        "login": "mk-pmb",
        "id": 3442602,
        "node_id": "MDQ6VXNlcjM0NDI2MDI=",
        "avatar_url": "https://avatars.githubusercontent.com/u/3442602?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/mk-pmb",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-12-17T09:11:03Z",
      "updated_at": "2025-12-17T09:39:16Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nI want to host a public filesystem MCP via HTTPS, by installing it into a docker container, together with other stuff that users won't be interested in. I'd like a way to specify which directories users can see and access.\n\n`docs/docs/learn/client-concepts.mdx` says that roots are mere hints:\n\n> Roots work best when […] users understand their advisory nature, and the goal is preventing accidents rather than stopping malicious behavior.\n\nIn my case it wouldn't even necessarily be malicious, but when users would want to see \"all files on that MCP\" they'd probably give `/` as the root, and would be confused to see the entire docker container. Also their AI might be confused about the vast amount of unexpected boring files. They'd have expected to only see the directories with my actual intended content, which would be `/pubfiles/` in my docker container.\n\n`src/filesystem/README.md` says about \"Roots Protocol Handling\":\n\n> Server replaces ALL allowed directories with client's roots\n\nNote it says \"allowed\". That sounds like a mixup of the concepts of a client's declaration of intent about what to use, vs. a server operator's intent about what to share. In a similar manner, the\n\n> Note: The server will only allow operations within directories specified either via args or via Roots.\n\nlacks explanation why something that the server operator can decide (command arguments) should be handled equivalent to something that arbitrary users can send (roots).\n\n**Describe the solution you'd like**\n* Server operators can configure a base directory that will become the top level for all roots, i.e. it would be `file:///` in the root URLs namespace.\n* Inside that, server operators can configure \"allowed\" directories, and only those (and their parent directories) will be visible and accessible.\n  * In the trivial case, this is a single entry `/` for the top level.\n  * Default is still the empty list = no access at all, to avoid accidents when people comment-out the last entry in their config.\n  * The idea behind this feature is so I can easily expose the `photos`, `books`, and `videos` subdirectories of my `/pubfiles`, but not confuse users' AI with all the stuff in `/pubfiles/.git` and `/pubfiles/.cache`.\n* When a client has no roots support, assume it wants to see everything, i.e. act as if it had specified a single root with URI `file:///`\n* When roots are received, track them as \"intended\" directories, i.e. a voluntary additional restriction of the \"allowed\" directories. Any roots outside of the \"allowed\" directories is simply ignored, pretending the directory doesn't exist.\n* There should be an option about which kinds of symlinks to accept along the way: `none` = none (default), `same-owner` = symlink must be owned by the same user and group as its target, `trust-all` = yolo. For unacceptable symlinks, pretend they don't exist. (Not sure if that should be its own feature request issue.)\n\n**Describe alternatives you've considered**\n\n\n**Additional context**\nI'm hosting the server publicly because parts of my audience won't be able to install their own MCP-related software. We have a web-based AI chat assistant for them, so my hope is that with a few screenshots of how to navigate the config, they can find the \"MCP URL\" field, paste my URL there, and it just works for them.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3133/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3132",
      "id": 3737857603,
      "node_id": "I_kwDONRaG_87eyy5D",
      "number": 3132,
      "title": "sequentialthinking: Readme's usage section lists purposes, but should also describe how to achieve them.",
      "user": {
        "login": "mk-pmb",
        "id": 3442602,
        "node_id": "MDQ6VXNlcjM0NDI2MDI=",
        "avatar_url": "https://avatars.githubusercontent.com/u/3442602?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/mk-pmb",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-12-17T08:22:42Z",
      "updated_at": "2025-12-17T08:22:42Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nAfter reading the \"Usage\" section in [the sequentialthinking readme](https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking), I still have no idea _how_ I could go about trying the sequentialthinking server.\n\n**Describe the solution you'd like**\nThe usage section should have actionable instructions on how to interact with this, once it's installed and the host has connected. Or if it's more of a passive thing, describe how I can test if it's working properly.\n\n**Describe alternatives you've considered**\n\n\n**Additional context**\nCurrently, there's only a list of what \"The Sequential Thinking tool is designed for\", i.e. _what_ users can do with it, but nothing about the _how_.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3132/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3159
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3131",
      "id": 3735611390,
      "node_id": "I_kwDONRaG_87eqOf-",
      "number": 3131,
      "title": "Add Icons with light/dark themes to Everything server primitives.",
      "user": {
        "login": "cliffhall",
        "id": 871933,
        "node_id": "MDQ6VXNlcjg3MTkzMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/cliffhall",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "cliffhall",
        "id": 871933,
        "node_id": "MDQ6VXNlcjg3MTkzMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/cliffhall",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "cliffhall",
          "id": 871933,
          "node_id": "MDQ6VXNlcjg3MTkzMw==",
          "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/cliffhall",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 0,
      "created_at": "2025-12-16T17:03:40Z",
      "updated_at": "2025-12-16T17:12:53Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nTo fully support [SEP-973](https://github.com/modelcontextprotocol/java-sdk/issues/532), we need to demonstrate icons (with light/dark) themes in a reference server, and to test such functionality in the Inspector. \n\n**Describe the solution you'd like**\nThe Everything server already has an icon and website url, so SEP-973 is already there. For full support, we need to add for icons (with light/dark) themes in the Everything server, everywhere that icons are supported. \n\n**Additional Context**\nWhen the support for SEP-973 was added to the Inspector, @jesselumarie kindly provided a [test server](https://github.com/modelcontextprotocol/inspector/pull/778#issuecomment-3577873860) to demonstrate. This may be useful as a reference when implementing in the Everything server.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3131/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3130",
      "id": 3735573476,
      "node_id": "I_kwDONRaG_87eqFPk",
      "number": 3130,
      "title": "Add Resource Collection example to Everything server",
      "user": {
        "login": "cliffhall",
        "id": 871933,
        "node_id": "MDQ6VXNlcjg3MTkzMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/cliffhall",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "cliffhall",
        "id": 871933,
        "node_id": "MDQ6VXNlcjg3MTkzMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/cliffhall",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "cliffhall",
          "id": 871933,
          "node_id": "MDQ6VXNlcjg3MTkzMw==",
          "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/cliffhall",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "1": {
          "login": "olaservo",
          "id": 16480113,
          "node_id": "MDQ6VXNlcjE2NDgwMTEz",
          "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/olaservo",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 2,
      "created_at": "2025-12-16T16:51:10Z",
      "updated_at": "2026-01-11T14:26:51Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": {
        "id": 23633470,
        "node_id": "IT_kwDOCt2Azc4BaJ4-",
        "name": "Enhancement",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-09-20T20:53:29Z",
        "updated_at": "2025-11-14T20:09:31Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\n@olaservo [suggested](https://github.com/modelcontextprotocol/servers/pull/3121#issuecomment-3651471819) that we add an example of resource collections. It was prompted by [this discussion](https://github.com/orgs/modelcontextprotocol/discussions/648) on the topic.\n\n\n**Describe the solution you'd like**\n@olaservo has posted a gist that demonstrates the pattern where a single resources/read request\n\nHer example returns multiple ResourceContents with different URIs - useful for modeling collections, indexes, or composite resources.\n\nResources like the following:\n * - `demo://collection/summer-specials`: Returns all items as separate resources\n * - `demo://collection/by-category/{category}`: Returns items filtered by category\n * - `demo://collection/item/{id}`: Returns a single item (for individual access)\n\n\n**Describe alternatives you've considered**\nNone really. This is a well thought out example, and I think we should add it when the [newly refactored](https://github.com/modelcontextprotocol/servers/pull/3121) Everything server PR is merged.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3130/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3202
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3127",
      "id": 3732128262,
      "node_id": "I_kwDONRaG_87ec8IG",
      "number": 3127,
      "title": "feat(brave-search): Make rate limits configurable via environment variables",
      "user": {
        "login": "mattcrombie-darkice",
        "id": 101632788,
        "node_id": "U_kgDOBg7LFA",
        "avatar_url": "https://avatars.githubusercontent.com/u/101632788?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/mattcrombie-darkice",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-12-15T21:09:06Z",
      "updated_at": "2025-12-15T21:11:00Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Summary\n\nThe brave-search server (now in servers-archived) has hardcoded rate limits that don't match Brave Search API tier limits. This artificially throttles users with paid plans.\n\n## Problem\n\n```typescript\n// Current hardcoded limits\nconst RATE_LIMIT = {\n  perSecond: 1,\n  perMonth: 15000\n};\n```\n\n| Brave Plan | Actual Limit | Server Allows |\n|------------|--------------|---------------|\n| Free | 1 req/s | 1 req/s ✓ |\n| Base | 20 req/s | 1 req/s ✗ |\n| Pro | Unlimited | 1 req/s ✗ |\n\nUsers with Base ($5/mo) or Pro plans are artificially throttled to Free tier limits.\n\n## Proposed Solution\n\nMake rate limits configurable via environment variables with backward-compatible defaults:\n\n```typescript\nconst RATE_LIMIT = {\n  perSecond: parseInt(process.env.BRAVE_RATE_LIMIT_PER_SECOND || '1', 10),\n  perMonth: parseInt(process.env.BRAVE_RATE_LIMIT_PER_MONTH || '15000', 10)\n};\n```\n\n**Benefits:**\n- Zero breaking changes (defaults match current behaviour)\n- Users can configure based on their actual API tier\n- Simple 2-line change\n\n## Example Configuration\n\n```json\n{\n  \"mcpServers\": {\n    \"brave-search\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-brave-search\"],\n      \"env\": {\n        \"BRAVE_API_KEY\": \"your-key\",\n        \"BRAVE_RATE_LIMIT_PER_SECOND\": \"20\"\n      }\n    }\n  }\n}\n```\n\n## Note\n\nI understand brave-search was moved to servers-archived (which is read-only). I'm happy to submit a PR if you can advise the best path forward - whether that's:\n1. Unarchiving just for this fix\n2. Bringing brave-search back to this repo\n3. Another approach\n\nThe fix is minimal and backward-compatible.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3127/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3122",
      "id": 3726775070,
      "node_id": "I_kwDONRaG_87eIhMe",
      "number": 3122,
      "title": "The memory mcp error 32602 occurs in the cursor, but no error occurs in claude code/roocode/cline, even though the same configuration is used.",
      "user": {
        "login": "panxiangyu1995",
        "id": 200735872,
        "node_id": "U_kgDOC_b8gA",
        "avatar_url": "https://avatars.githubusercontent.com/u/200735872?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/panxiangyu1995",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-12-14T05:11:32Z",
      "updated_at": "2025-12-14T05:11:32Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nA clear and concise description of what the bug is.\n\nThe memory mcp service is configured with a memory.jsonl file . All tools work correctly in Claude Code/ROO code/Cline/kilo code/TRAE. However, the same memory mcp service encounters an error 32602 when use reading tools like \"search_nodes\" in the Cursor.However, creating entities works normally in the Cursor.I've tried switching models and changing the configuration file to memory.json, but the problem persists.\n\nThe cursor output panel shows the following:\n2025-12-14 12:57:17.803 [error] Error calling tool 'search_nodes': MCP error -32602: Structured content does not match the tool's output schema: data.entities[0] should NOT have additional properties\n2025-12-14 12:57:19.948 [info] Handling CallTool action for tool 'read_graph'\n2025-12-14 12:57:19.948 [info] Calling tool 'read_graph' with toolCallId: tool_ef03a7a7-f6db-421d-b8da-44e79cd3e45\n2025-12-14 12:57:19.967 [error] Error calling tool 'read_graph': MCP error -32602: Structured content does not match the tool's output schema: data.entities[0] should NOT have additional properties\n2025-12-14 12:57:22.243 [info] Handling CallTool action for tool 'open_nodes'\n2025-12-14 12:57:22.243 [info] Calling tool 'open_nodes' with toolCallId: tool_a5c985a3-b1d6-4e47-8041-f8c273f6b25\n2025-12-14 12:57:22.249 [error] Error calling tool 'open_nodes': MCP error -32602: Structured content does not match the tool's output schema: data.entities[0] should NOT have additional properties\n\n**Additional context**\nAdd any other context about the problem here.\nmemory.json has 452 lines. \nEach line is correctly formatted using a single line.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3122/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3093",
      "id": 3677615745,
      "node_id": "I_kwDONRaG_87bM_aB",
      "number": 3093,
      "title": "Filesystem MCP: move_file tool returns array instead of string (Error -32602)",
      "user": {
        "login": "shintaro0403",
        "id": 128063369,
        "node_id": "U_kgDOB6IXiQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/128063369?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/shintaro0403",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-11-30T10:26:27Z",
      "updated_at": "2025-12-15T20:59:57Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Filesystem MCP: move_file tool returns array instead of string (Error -32602)\n\nSummary\n\nWhen executing the move_file tool from @modelcontextprotocol/server-filesystem, error code -32602 (Invalid params) occurs.\n\nRoot Cause: The tool returns an array instead of a string, causing MCP protocol validation to fail.\n\nError Details\n\nError Code: -32602 (JSON-RPC Invalid params)\n\nError Message:\nOutput validation error: Invalid structured content for tool move_file: [\n  {\n    \"expected\": \"string\",\n    \"code\": \"invalid_type\",\n    \"path\": [\"content\"],\n    \"message\": \"Invalid input: expected string, received array\"\n  }\n]\n\nProblem Location: The content field is an array (should be a string)\n\nSteps to Reproduce\n\n1. Configure @modelcontextprotocol/server-filesystem as an MCP server\n2. Call the move_file tool with:\n   - source: Source file path\n   - destination: Destination file path\n3. Error occurs\n\nExample:\n{\n  \"source\": \"C:\\\\path\\\\to\\\\file.txt\",\n  \"destination\": \"C:\\\\path\\\\to\\\\new\\\\file.txt\"\n}\n\nExpected Behavior\n\nThe move_file tool should return a string message when file movement succeeds.\n\nExample:\n\"Successfully moved file from source to destination\"\n\nActual Behavior\n\nThe move_file tool returns an array, causing MCP protocol validation to fail.\n\nEnvironment\n\nOS: Windows 10 (build 26100)\nNode.js: 22.21.1 (Built-in Claude Desktop)\nPackage: @modelcontextprotocol/server-filesystem@latest\nMCP Client: Claude Desktop 1.0.1307\n\nLog Excerpts\n\nRequest:\n2025-11-30T09:57:51.155Z [filesystem] [info] Message from client: \n{\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"move_file\",\n    \"arguments\": {\n      \"source\": \"C:\\\\Users\\\\skiku\\\\Documents\\\\MCP_Learning\\\\chapter01\\\\test1.txt\",\n      \"destination\": \"C:\\\\Users\\\\skiku\\\\Documents\\\\MCP_Learning\\\\chapter01\\\\テストファイル\\\\test1.txt\"\n    }\n  },\n  \"jsonrpc\": \"2.0\",\n  \"id\": 26\n}\n\nResponse (Error):\n2025-11-30T09:57:51.174Z [filesystem] [info] Message from server: \n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 26,\n  \"result\": {\n    \"content\": [{\n      \"type\": \"text\",\n      \"text\": \"MCP error -32602: Output validation error: Invalid structured content for tool move_file: ...\"\n    }],\n    \"isError\": true\n  }\n}\n\nAdditional Information\n\n- Other file operation tools (read_file, write_file, create_directory, etc.) work correctly\n- The move_file tool appears in the available tools list but fails at runtime\n- This issue prevents file movement functionality from being used\n\nRelated Issues\n\nI checked GitHub Issues but found no known problems related to the move_file tool. This appears to be an unreported bug.\n\nSuggested Labels\n\n- bug\n- server-filesystem\n- schema-validation",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3093/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3086",
      "id": 3674972500,
      "node_id": "I_kwDONRaG_87bC6FU",
      "number": 3086,
      "title": "EISDIR error when creating/adding observations for directory paths (client reads directory as a file)",
      "user": {
        "login": "punkyard",
        "id": 59349105,
        "node_id": "MDQ6VXNlcjU5MzQ5MTA1",
        "avatar_url": "https://avatars.githubusercontent.com/u/59349105?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/punkyard",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-11-28T13:39:55Z",
      "updated_at": "2025-11-28T13:39:55Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Summary\n\nWhile creating entities or adding observations with the memory MCP server, we observed intermittent EISDIR errors when entity names corresponded to directory paths (e.g., `.github`). The error is triggered when a client or server attempts to read a directory as if it were a file and fails with Node's EISDIR error.\n\nEnvironment\n\n- Node: 24.x (example from workspace: v24.11.1)\n- npx: 11.x\n- Memory server: `@modelcontextprotocol/server-memory`\n- Workspace: firstb00t-v2 (project-level analysis performed on: /Users/nmn/rez0/neimen/0-code/github-pun/firstb00t-v2)\n\nReproduction steps (simplified)\n\n1. Stop the memory server or ensure it is unreachable.\n2. From a client (or wrapper) call the memory MCP API `create_entities` or `add_observations` with an entity name that maps to an existing directory (e.g., `.github`) while not explicitly specifying `entityType` or specifying `entityType` incorrectly as `file`.\n3. If the client attempts to read the path or infers the path as a file, `fs.readFile` will be invoked and an `EISDIR` error occurs: `EISDIR: illegal operation on a directory, read <path>`.\n\nObserved\n\n- Error message from Node: `EISDIR: illegal operation on a directory, read <path>`.\n- The memory creation calls can partially succeed or fail — leading to inconsistent memory graph state.\n\nExpected\n\n- The MCP memory server or client should clearly handle directories and files separately.\n  - For directories, either create an entity with `entityType: \"folder\"` or return a descriptive validation error asking the user to provide `entityType: \"folder\"`.\n  - For files, accept the request and, when specified, read file contents or add string observations without implicit filesystem reads.\n- The client should not attempt to fallback to local filesystem reads when the memory server is offline; instead, return a connection error.\n\nPotential root causes\n\n- Client wrapper calls may attempt to read local file content automatically if a path-like `name` was provided (and entityType is not provided), and `fs.readFile` is invoked on a directory.\n- Server-side may accept `name` as a raw string without proper validation or safe handling of directories vs. files.\n- Server might accept wrong `entityType` values and not warning clearly.\n\nSuggested fixes\n\n1. Server-side validation\n   - Validate the `entityType` upon /create_entities call and return clear, descriptive errors.\n   - If `entityType` is not provided, return a validation error rather than attempting to infer a file read.\n2. Client-side helper\n   - Add a client wrapper that uses `fs.stat()` to check path type before any reads. If `stat.isDirectory()` return `entityType: \"folder\"` or raise a validation error.\n   - If the server is offline, return a connection error and avoid falling back to local file reads.\n3. Better logging\n   - Add a more descriptive error message that indicates a directory path was provided and that a folder entity is required if that is intended.\n4. Tests\n   - Add unit/integration tests to validate behavior of both file & folder `entityType` creation, including offline server test to ensure no local file reads occur.\n\nAttachments (from local analysis)\n\n- `.context/eisdir_analysis.md` — local analysis of root cause for EISDIR error.\n- `.context/mem_import_2025-11-28.json` — audit of entities & relations created while testing.\n- `.context/filetree.md` — canonical file tree with clear folder/file separation.\n\nNotes\n\n- I can open a PR to add a client-side wrapper and tests if you want. Also happy to contribute a patch to server-side validation to make errors clearer.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3086/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3074",
      "id": 3666940521,
      "node_id": "I_kwDONRaG_87akRJp",
      "number": 3074,
      "title": "Memory MCP, schema validation error: MCP error -32602",
      "user": {
        "login": "VicioBonura",
        "id": 157682311,
        "node_id": "U_kgDOCWYKhw",
        "avatar_url": "https://avatars.githubusercontent.com/u/157682311?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/VicioBonura",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-11-26T10:45:39Z",
      "updated_at": "2026-01-20T03:45:17Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# Bug Report: Memory MCP Server - Schema Validation Error\n\n## Summary\n\nAll read operations (`read_graph`, `search_nodes`, `open_nodes`) fail with schema validation error when reading entities from JSONL format memory file. The server includes the `type` field in entity objects when reading from file, but the output schema does not allow this field.\n\n## Environment\n\n- **Server**: `@modelcontextprotocol/server-memory`\n- **Version**: `2025.11.25` (latest available)\n- **OS**: Linux Ubuntu 24.04\n- **MCP Client**: Cursor IDE\n\n## Steps to Reproduce\n\n1. Configure Memory MCP server with a JSONL format `memory.json` file\n2. File contains entities with structure: `{\"type\":\"entity\",\"name\":\"...\",\"entityType\":\"...\",\"observations\":[...]}`\n3. Call any read operation:\n   - `mcp_memory_read_graph`\n   - `mcp_memory_search_nodes`\n   - `mcp_memory_open_nodes`\n4. All operations fail with the same error\n\n## Expected Behavior\n\nRead operations should return entities without the `type` field, as entities are already separated in the response structure (`data.entities` vs `data.relations`).\n\n## Actual Behavior\n\nAll read operations return error:\n```json\n{\n  \"error\": \"MCP error -32602: Structured content does not match the tool's output schema: data.entities[0] should NOT have additional properties\"\n}\n```\n\nNo partial data is returned - the response contains only the error field.\n\n## Technical Details\n\n- **File format**: JSONL (newline-delimited JSON)\n- **Total lines**: 538\n- **Entities**: 206\n- **Relations**: 332\n- **Entity schema in file**: `{type, name, entityType, observations}` (4 fields)\n- **Expected entity schema in output**: `{name, entityType, observations}` (3 fields, no `type`)\n\nThe `type` field is necessary in the file to distinguish entities from relations, but should be stripped when preparing the response.\n\n## Workaround\n\n- Read data directly from `memory.json` file using file I/O\n- Write operations (`create_entities`, `add_observations`, etc.) work correctly\n- Only read operations are affected\n\n## Additional Information\n\n- The file structure is valid and can be read successfully using direct file access\n- The issue appears to be in the server's schema validation logic\n- Cache cleared (`npm cache clean --force`) but issue persists\n- Issue occurs with latest server version (2025.11.25)\n\n## Error Code\n\n`MCP error -32602` - Invalid params / Schema validation error\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3074/reactions",
        "total_count": 4,
        "+1": 4,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3094
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3073",
      "id": 3666245233,
      "node_id": "I_kwDONRaG_87ahnZx",
      "number": 3073,
      "title": "Vitest False Positive in PR Added in-memory locks for the process, fix for Bug #2579 temporary measure. #3060",
      "user": {
        "login": "davidw-philips",
        "id": 223673186,
        "node_id": "U_kgDODVT7Yg",
        "avatar_url": "https://avatars.githubusercontent.com/u/223673186?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/davidw-philips",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-11-26T07:34:56Z",
      "updated_at": "2025-11-26T07:34:56Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Describe the bug\n\nVitest reports an “Unhandled Errors” warning for a test that intentionally throws an error (\"should throw error for non-existent entity\").\nThe test itself passes correctly using .rejects.toThrow(), but Vitest incorrectly surfaces the expected rejection as an unhandled error.\n\nThis causes the TypeScript / Test memory CI job to fail even though there is no bug in the memory server implementation.\n\nTo Reproduce\n\nSteps to reproduce the behavior:\n\nRun the memory server tests using:\n\npnpm test:memory\n\n\nLook for the test:\n\n\"should throw error for non-existent entity\"\n\nObserve that the test passes but Vitest outputs an “Unhandled Errors” warning.\n\nIn GitHub Actions, this warning results in a failing test job.\n\nExpected behavior\n\nVitest should correctly treat .rejects.toThrow() as a handled and expected error, and should not report the intentionally thrown error as an unhandled rejection.\n\nCI should pass when the test succeeds, without false-positive warnings.\n\nLogs\n\nExample output:\n\nUnhandled Errors:\n  ❯ Error: Entity does not exist\n    at ...\n\n\nThe test reports PASS\n\nThe warning appears only in the \"Unhandled Errors\" summary\n\nNo runtime errors or implementation failures occur\n\nAdditional context\n\nThis behavior is a Vitest testing quirk, not a bug in the memory server code.\n\nAll locking, file serialization, and race condition tests pass successfully.\n\nThe new lock implementation is functioning as expected.\n\nThe false warning appears because Vitest sometimes logs expected async errors as “unhandled” even when wrapped in .rejects.toThrow().\n\nPossible mitigations (optional):\n\nRewrite the test using assert.rejects(...)\n\nWrap error tests to avoid Vitest’s unhandled rejection reporting\n\nAdd scoped process.on(\"unhandledRejection\", () => {}); for this file (not recommended except for CI cleanliness)\n\nIf you want, I can also rewrite the test file for a clean CI run.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3073/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3064",
      "id": 3664735670,
      "node_id": "I_kwDONRaG_87ab222",
      "number": 3064,
      "title": "Standardize the install instructions across the apps",
      "user": {
        "login": "alessiopelliccione",
        "id": 66967361,
        "node_id": "MDQ6VXNlcjY2OTY3MzYx",
        "avatar_url": "https://avatars.githubusercontent.com/u/66967361?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/alessiopelliccione",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-11-25T21:58:37Z",
      "updated_at": "2025-12-07T10:27:45Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nCurrently, the installation steps differ across the applications in this repo.\n\n**Describe the solution you'd like**\nI propose creating a single, standardized installation guide that applies to all apps. We can then reference this central guide in each application's README to ensure consistency and reduce duplication.\n\n**Describe alternatives you've considered**\nLeaving the instructions as they are, but this leads to drift where some apps have outdated or incorrect setup steps compared to others.\n\n**Additional context**\nThis aligns with the discussion in #2956 \n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3064/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3112
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3051",
      "id": 3658240391,
      "node_id": "I_kwDONRaG_87aDFGH",
      "number": 3051,
      "title": "The filesystem server stopped working with the OpenAI Agent SDK.",
      "user": {
        "login": "buehler",
        "id": 1067213,
        "node_id": "MDQ6VXNlcjEwNjcyMTM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1067213?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/buehler",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "olaservo",
          "id": 16480113,
          "node_id": "MDQ6VXNlcjE2NDgwMTEz",
          "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/olaservo",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 21,
      "created_at": "2025-11-24T10:41:41Z",
      "updated_at": "2025-11-26T20:07:31Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nIt has been working with an old version of the filesystem server. However, after upgrading the server, openAI (and also the model context protocol inspector) throw errors when trying to list the tools.\n\n**To Reproduce**\nEither:\n1. use `npx -y @modelcontextprotocol/inspector npx @modelcontextprotocol/server-filesystem ./`\n2. try to \"list tools\"\n3. get the following error:\n```\n[\n  {\n    \"code\": \"invalid_literal\",\n    \"expected\": \"object\",\n    \"path\": [\n      \"tools\",\n      0,\n      \"inputSchema\",\n      \"type\"\n    ],\n    \"message\": \"Invalid literal value, expected \\\"object\\\"\"\n  },\n  {\n    \"code\": \"invalid_literal\",\n    \"expected\": \"object\",\n    \"path\": [\n      \"tools\",\n      1,\n      \"inputSchema\",\n      \"type\"\n    ],\n    \"message\": \"Invalid literal value, expected \\\"object\\\"\"\n  },\n  {\n    \"code\": \"invalid_literal\",\n    \"expected\": \"object\",\n    \"path\": [\n      \"tools\",\n      2,\n      \"inputSchema\",\n      \"type\"\n    ],\n    \"message\": \"Invalid literal value, expected \\\"object\\\"\"\n  },\n  {\n    \"code\": \"invalid_literal\",\n    \"expected\": \"object\",\n    \"path\": [\n      \"tools\",\n      3,\n      \"inputSchema\",\n      \"type\"\n    ],\n    \"message\": \"Invalid literal value, expected \\\"object\\\"\"\n  },\n  {\n    \"code\": \"invalid_literal\",\n    \"expected\": \"object\",\n    \"path\": [\n      \"tools\",\n      4,\n      \"inputSchema\",\n      \"type\"\n    ],\n    \"message\": \"Invalid literal value, expected \\\"object\\\"\"\n  },\n  {\n    \"code\": \"invalid_literal\",\n    \"expected\": \"object\",\n    \"path\": [\n      \"tools\",\n      5,\n      \"inputSchema\",\n      \"type\"\n    ],\n    \"message\": \"Invalid literal value, expected \\\"object\\\"\"\n  },\n  {\n    \"code\": \"invalid_literal\",\n    \"expected\": \"object\",\n    \"path\": [\n      \"tools\",\n      6,\n      \"inputSchema\",\n      \"type\"\n    ],\n    \"message\": \"Invalid literal value, expected \\\"object\\\"\"\n  },\n  {\n    \"code\": \"invalid_literal\",\n    \"expected\": \"object\",\n    \"path\": [\n      \"tools\",\n      7,\n      \"inputSchema\",\n      \"type\"\n    ],\n    \"message\": \"Invalid literal value, expected \\\"object\\\"\"\n  },\n  {\n    \"code\": \"invalid_literal\",\n    \"expected\": \"object\",\n    \"path\": [\n      \"tools\",\n      8,\n      \"inputSchema\",\n      \"type\"\n    ],\n    \"message\": \"Invalid literal value, expected \\\"object\\\"\"\n  },\n  {\n    \"code\": \"invalid_literal\",\n    \"expected\": \"object\",\n    \"path\": [\n      \"tools\",\n      9,\n      \"inputSchema\",\n      \"type\"\n    ],\n    \"message\": \"Invalid literal value, expected \\\"object\\\"\"\n  },\n  {\n    \"code\": \"invalid_literal\",\n    \"expected\": \"object\",\n    \"path\": [\n      \"tools\",\n      10,\n      \"inputSchema\",\n      \"type\"\n    ],\n    \"message\": \"Invalid literal value, expected \\\"object\\\"\"\n  },\n  {\n    \"code\": \"invalid_literal\",\n    \"expected\": \"object\",\n    \"path\": [\n      \"tools\",\n      11,\n      \"inputSchema\",\n      \"type\"\n    ],\n    \"message\": \"Invalid literal value, expected \\\"object\\\"\"\n  },\n  {\n    \"code\": \"invalid_literal\",\n    \"expected\": \"object\",\n    \"path\": [\n      \"tools\",\n      12,\n      \"inputSchema\",\n      \"type\"\n    ],\n    \"message\": \"Invalid literal value, expected \\\"object\\\"\"\n  }\n]\n```\n\nOr:\n1. use openai sdk to start the MCP server\n2. when trying to interact with it\n3. get the following error:\n```\nopenai.BadRequestError: Error code: 400 - {'error': {'message': 'Invalid schema for function \\'read_file\\': schema must be a JSON Schema of \\'type: \"object\"\\', got \\'type: \"None\"\\'.', 'type': 'invalid_request_error', 'param': 'tools[0].parameters', 'code': 'invalid_function_parameters'}}\n```\n\n**Expected behavior**\nThe MCP server should work :)\n\n**Logs**\nProvided in the steps to reproduce\n\n**Additional context**\nCurrently uses:\nnode 24\nopenai sdk 0.6.1\nfilesystem server latest",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3051/reactions",
        "total_count": 8,
        "+1": 8,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3047",
      "id": 3656427529,
      "node_id": "I_kwDONRaG_87Z8KgJ",
      "number": 3047,
      "title": "Register MCP reference and docs servers in the official server registry",
      "user": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "olaservo",
          "id": 16480113,
          "node_id": "MDQ6VXNlcjE2NDgwMTEz",
          "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/olaservo",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 2,
      "created_at": "2025-11-23T20:29:46Z",
      "updated_at": "2025-11-23T23:10:40Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Overview\n\nThis document tracks the registration of all official MCP reference servers and the documentation server in the [MCP Server Registry](https://registry.modelcontextprotocol.io/).\n\n**Goal**: Register all 8 servers to promote discoverability through the official registry as we deprecate README-based server listings.\n\n**Important**: This document provides guidance and checklists, but always refer to the [official registry documentation](https://github.com/modelcontextprotocol/registry/tree/main/docs/modelcontextprotocol-io) for the most up-to-date and accurate information.\n\n## Key Requirements (From Official Docs)\n\nBased on [official registry documentation](https://github.com/modelcontextprotocol/registry/tree/main/docs/modelcontextprotocol-io):\n\n1. **NPM packages**: `mcpName` in package.json **MUST** match server name in server.json\n2. **PyPI packages**: `mcp-name:` marker in README **MUST** match server name in server.json (can be in HTML comment)\n3. **Remote servers**: **MUST** be publicly accessible at specified URL\n4. **Namespace**: For GitHub auth, must use `io.github.[org-name]/[server-name]` format\n5. **Schema**: server.json should include `$schema` property pointing to official schema\n6. **Version matching**: Versions in server.json should match published package versions\n\n## Server Inventory\n\n### NPM Packages (4 servers)\n\n1. **everything** - `@modelcontextprotocol/server-everything`\n   - Description: Test server exercising all MCP protocol features\n   - Version: 0.6.2\n   - Location: `src/everything/`\n\n2. **filesystem** - `@modelcontextprotocol/server-filesystem`\n   - Description: Filesystem operations (read/write/search)\n   - Location: `src/filesystem/`\n\n3. **memory** - `@modelcontextprotocol/server-memory`\n   - Description: Knowledge graph-based persistent memory\n   - Location: `src/memory/`\n\n4. **sequentialthinking** - `@modelcontextprotocol/server-sequential-thinking`\n   - Description: Structured problem-solving with dynamic thinking\n   - Location: `src/sequentialthinking/`\n\n### PyPI Packages (3 servers)\n\n5. **fetch** - `mcp-server-fetch`\n   - Description: Web content fetching with HTML to markdown conversion\n   - Version: 0.6.3\n   - Location: `src/fetch/`\n\n6. **git** - `mcp-server-git`\n   - Description: Git repository interaction and automation\n   - Location: `src/git/`\n\n7. **time** - `mcp-server-time`\n   - Description: Time and timezone conversion capabilities\n   - Location: `src/time/`\n\n### Remote Server\n\n8. **docs** - MCP Documentation Server\n   - URL: https://modelcontextprotocol.io/mcp\n   - Description: Official MCP protocol documentation\n   - Type: Remote server\n   - Transport: Streamable HTTP\n\n## Registration Process\n\nBased on the [MCP Registry documentation](https://github.com/modelcontextprotocol/registry/tree/main/docs/modelcontextprotocol-io), here's the workflow:\n\n### Prerequisites\n\n- [ ] Install mcp-publisher CLI tool\n  ```bash\n  # macOS/Linux - see https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx for exact command\n  # Windows - see registry docs for PowerShell command\n  ```\n- [ ] Ensure packages are published to npm/PyPI\n- [ ] GitHub account for authentication\n\n### For Each Server\n\n**See the [Publisher Quickstart](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx) for the complete official process.**\n\n1. **Update Package Metadata**\n   - NPM: Add `mcpName` property to package.json (must match server name in server.json)\n   - PyPI: Add `mcp-name: $SERVER_NAME` to README (can be in HTML comment)\n\n2. **Verify Package Publication**\n   - Ensure latest version is published to npm/PyPI\n   - Confirm package is publicly accessible\n\n3. **Create server.json**\n   ```bash\n   cd src/[server-name]\n   mcp-publisher init\n   ```\n   Follow the interactive prompts to generate the file. The tool will create the correct structure.\n\n4. **Authenticate**\n   ```bash\n   mcp-publisher login github\n   ```\n   - Follow GitHub device flow\n   - Must authenticate as `modelcontextprotocol` organization member\n\n5. **Publish to Registry**\n   ```bash\n   mcp-publisher publish\n   ```\n\n6. **Verify Registration**\n   - Check https://registry.modelcontextprotocol.io/\n   - Search for the server by name\n\n## Technical Requirements\n\n### NPM Packages\n\n**Required Changes to package.json:**\n\nThe `mcpName` property **MUST** match the server name from `server.json`.\n\n```json\n{\n  \"mcpName\": \"io.github.modelcontextprotocol/server-everything\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/modelcontextprotocol/servers.git\"\n  }\n}\n```\n\n**Reference**: [Package Types - npm](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/package-types.mdx#npm-packages)\n\n### PyPI Packages\n\n**Required Addition to README.md:**\n\nThe README must contain an `mcp-name: $SERVER_NAME` string where `$SERVER_NAME` **MUST** match the server name from `server.json`. This can be placed in an HTML comment:\n\n```markdown\n<!-- mcp-name: io.github.modelcontextprotocol/server-fetch -->\n```\n\nOr as plain text near the top of the README.\n\n**Reference**: [Package Types - PyPI](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/package-types.mdx#pypi-packages)\n\n### server.json Templates\n\n**Note**: Use `mcp-publisher init` to generate the correct structure. The examples below are for reference.\n\n**Reference**: [Publisher Quickstart - server.json structure](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx)\n\n#### For Package-based Servers (NPM/PyPI)\n\n```json\n{\n  \"$schema\": \"https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json\",\n  \"name\": \"io.github.modelcontextprotocol/server-[name]\",\n  \"description\": \"Server description here\",\n  \"repository\": {\n    \"url\": \"https://github.com/modelcontextprotocol/servers\",\n    \"source\": \"github\"\n  },\n  \"version\": \"0.6.x\",\n  \"packages\": [{\n    \"registryType\": \"npm\",\n    \"identifier\": \"@modelcontextprotocol/server-[name]\",\n    \"version\": \"0.6.x\",\n    \"transport\": {\n      \"type\": \"stdio\"\n    }\n  }]\n}\n```\n\n**For PyPI packages**, change:\n- `\"registryType\": \"pypi\"`\n- `\"identifier\": \"mcp-server-[name]\"`\n\n#### For Remote Servers\n\n```json\n{\n  \"$schema\": \"https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json\",\n  \"name\": \"io.github.modelcontextprotocol/docs\",\n  \"description\": \"Official MCP protocol documentation\",\n  \"repository\": {\n    \"url\": \"https://github.com/modelcontextprotocol/servers\",\n    \"source\": \"github\"\n  },\n  \"version\": \"1.0.0\",\n  \"remotes\": [{\n    \"url\": \"https://modelcontextprotocol.io/mcp\",\n    \"type\": \"streamable-http\"\n  }]\n}\n```\n\n**Reference**: [Remote Servers Documentation](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/remote-servers.mdx)\n\n## Detailed Checklist\n\n### 1. everything (NPM)\n\n- [ ] Add `mcpName` to src/everything/package.json\n- [ ] Verify npm publication status\n- [ ] Run `mcp-publisher init` in src/everything/\n- [ ] Review generated server.json\n- [ ] Authenticate with GitHub\n- [ ] Run `mcp-publisher publish`\n- [ ] Verify in registry\n\n### 2. filesystem (NPM)\n\n- [ ] Add `mcpName` to src/filesystem/package.json\n- [ ] Verify npm publication status\n- [ ] Run `mcp-publisher init` in src/filesystem/\n- [ ] Review generated server.json\n- [ ] Authenticate with GitHub (if needed)\n- [ ] Run `mcp-publisher publish`\n- [ ] Verify in registry\n\n### 3. memory (NPM)\n\n- [ ] Add `mcpName` to src/memory/package.json\n- [ ] Verify npm publication status\n- [ ] Run `mcp-publisher init` in src/memory/\n- [ ] Review generated server.json\n- [ ] Authenticate with GitHub (if needed)\n- [ ] Run `mcp-publisher publish`\n- [ ] Verify in registry\n\n### 4. sequentialthinking (NPM)\n\n- [ ] Add `mcpName` to src/sequentialthinking/package.json\n- [ ] Verify npm publication status\n- [ ] Run `mcp-publisher init` in src/sequentialthinking/\n- [ ] Review generated server.json\n- [ ] Authenticate with GitHub (if needed)\n- [ ] Run `mcp-publisher publish`\n- [ ] Verify in registry\n\n### 5. fetch (PyPI)\n\n- [ ] Add `mcp-name:` marker to src/fetch/README.md\n- [ ] Verify PyPI publication status\n- [ ] Run `mcp-publisher init` in src/fetch/\n- [ ] Review generated server.json\n- [ ] Authenticate with GitHub (if needed)\n- [ ] Run `mcp-publisher publish`\n- [ ] Verify in registry\n\n### 6. git (PyPI)\n\n- [ ] Add `mcp-name:` marker to src/git/README.md\n- [ ] Verify PyPI publication status\n- [ ] Run `mcp-publisher init` in src/git/\n- [ ] Review generated server.json\n- [ ] Authenticate with GitHub (if needed)\n- [ ] Run `mcp-publisher publish`\n- [ ] Verify in registry\n\n### 7. time (PyPI)\n\n- [ ] Add `mcp-name:` marker to src/time/README.md\n- [ ] Verify PyPI publication status\n- [ ] Run `mcp-publisher init` in src/time/\n- [ ] Review generated server.json\n- [ ] Authenticate with GitHub (if needed)\n- [ ] Run `mcp-publisher publish`\n- [ ] Verify in registry\n\n### 8. docs (Remote Server)\n\n- [ ] Create server.json with remote configuration\n  - URL: https://modelcontextprotocol.io/mcp\n  - Transport: Streamable HTTP\n- [ ] Verify remote server is publicly accessible\n- [ ] Run `mcp-publisher init` and configure as remote\n- [ ] Review generated server.json\n- [ ] Authenticate with GitHub (if needed)\n- [ ] Run `mcp-publisher publish`\n- [ ] Verify in registry\n\n## Resources\n\n### Registry Documentation\n- [Publisher Quickstart](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx)\n- [Package Types](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/package-types.mdx)\n- [Remote Servers](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/remote-servers.mdx)\n- [Registry Home](https://registry.modelcontextprotocol.io/)\n\n### Tools\n- mcp-publisher CLI: Available via curl, PowerShell, or Homebrew\n- Registry API: For verification after publication\n\n### Authentication Methods\n- GitHub OAuth (recommended for manual registration)\n- GitHub OIDC (for CI/CD automation)\n- DNS verification (for domain ownership)\n- HTTP verification (for domain ownership)\n\n## Notes\n\n### Namespace Ownership\n- All servers should use namespace: `io.github.modelcontextprotocol`\n- Requires authentication as the `modelcontextprotocol` GitHub organization\n- Organization members with appropriate permissions can publish\n\n### Version Management\n- Ensure server.json versions match published packages\n- Consider setting up GitHub Actions for automated publishing\n- Future releases should include registry updates in release process\n\n### Docker Images\nSeveral servers have Docker images (mcp/fetch, mcp/git, etc.). These could potentially be registered as OCI packages using the `io.modelcontextprotocol.server.name` annotation in Dockerfiles.\n\n**Reference**: [Package Types - Docker/OCI Images](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/package-types.mdx#dockeroci-images)\n\n### Special Considerations\n- Documentation server (docs) is registered as a remote server using the streamable HTTP transport\n- Remote servers **MUST** be publicly accessible at their specified URL (per [Remote Servers docs](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/remote-servers.mdx))\n- The `remotes` and `packages` properties can coexist in the same server.json, allowing users to choose their preferred installation method\n- Some servers support multiple transports; these can be registered with multiple entries in the `packages` or `remotes` arrays\n\n## Next Steps\n\n1. Install mcp-publisher CLI tool\n2. Authenticate with GitHub as modelcontextprotocol org member\n3. Work through checklist for each server\n4. Document any issues or special cases encountered\n5. Update release process to include registry publication\n6. Consider automating via GitHub Actions for future releases\n\n\n***\n\n(originally generated by Claude and edited)\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3047/reactions",
        "total_count": 4,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 2,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3175
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3041",
      "id": 3652553450,
      "node_id": "I_kwDONRaG_87ZtYrq",
      "number": 3041,
      "title": "Add Support for SEP-1330: Elicitation Enum Schema Improvements to Everything Server",
      "user": {
        "login": "cliffhall",
        "id": 871933,
        "node_id": "MDQ6VXNlcjg3MTkzMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/cliffhall",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "cliffhall",
        "id": 871933,
        "node_id": "MDQ6VXNlcjg3MTkzMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/cliffhall",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "cliffhall",
          "id": 871933,
          "node_id": "MDQ6VXNlcjg3MTkzMw==",
          "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/cliffhall",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 0,
      "created_at": "2025-11-21T17:43:31Z",
      "updated_at": "2025-11-21T19:29:36Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# Reference\nSEP-1330: Elicitation Enum Schema Improvements and Standards Compliance\n* [Proposal](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1330)\n* [Specification changes](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1148)\n* [Typescript SDK changes](https://github.com/modelcontextprotocol/typescript-sdk/pull/1077)\n* [Inspector support](https://github.com/modelcontextprotocol/inspector/issues/933)",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3041/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3040",
      "id": 3652526627,
      "node_id": "I_kwDONRaG_87ZtSIj",
      "number": 3040,
      "title": "Add Support for SEP-1577 - Sampling With Tools to Everything Server",
      "user": {
        "login": "cliffhall",
        "id": 871933,
        "node_id": "MDQ6VXNlcjg3MTkzMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/cliffhall",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "olaservo",
          "id": 16480113,
          "node_id": "MDQ6VXNlcjE2NDgwMTEz",
          "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/olaservo",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 0,
      "created_at": "2025-11-21T17:33:28Z",
      "updated_at": "2025-12-29T04:32:04Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": {
        "id": 23633470,
        "node_id": "IT_kwDOCt2Azc4BaJ4-",
        "name": "Enhancement",
        "description": "A request, idea, or new functionality",
        "color": "blue",
        "created_at": "2024-09-20T20:53:29Z",
        "updated_at": "2025-11-14T20:09:31Z",
        "is_enabled": true
      },
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# Reference\nSEP-1577 - Sampling With Tools\n* [Proposal](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1577)\n* [Specification changes](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1796)\n* [Typescript SDK changes](https://github.com/modelcontextprotocol/typescript-sdk/pull/1101)\n* [Inspector support](https://github.com/modelcontextprotocol/inspector/issues/932)",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3040/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3034",
      "id": 3649276528,
      "node_id": "I_kwDONRaG_87Zg4pw",
      "number": 3034,
      "title": "Add Example for SEP-1036: URL Elicitation to Everything Server",
      "user": {
        "login": "cliffhall",
        "id": 871933,
        "node_id": "MDQ6VXNlcjg3MTkzMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/cliffhall",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-11-20T22:00:28Z",
      "updated_at": "2025-11-20T22:00:28Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# Reference \n* SEP-1036: URL Elicitation\n  - [Proposal](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1036)  \n  - [Typescript SDK changes](https://github.com/modelcontextprotocol/typescript-sdk/pull/1105)\n  - [Spec changes](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/887)\n  - [Inspector support](https://github.com/modelcontextprotocol/inspector/issues/929)",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3034/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3029",
      "id": 3647257595,
      "node_id": "I_kwDONRaG_87ZZLv7",
      "number": 3029,
      "title": "mcp-server-git: Make `--repository .` auto-detect git root like standard git commands",
      "user": {
        "login": "fabn",
        "id": 324213,
        "node_id": "MDQ6VXNlcjMyNDIxMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/324213?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/fabn",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2025-11-20T13:19:14Z",
      "updated_at": "2025-12-12T23:46:46Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Problem\n\nWhen using `mcp-server-git` with `--repository .`, the server uses the literal current working directory instead of finding the git repository root. This differs from standard git behavior and creates portability issues:\n\n1. **Breaks when invoked from subdirectories**: If the MCP client is launched from a subdirectory of the repository, `--repository .` points to that subdirectory instead of the repository root, causing failures.\n\n2. **Forces absolute paths**: Teams must use absolute paths in configuration, requiring each developer to maintain local overrides since everyone has different clone paths.\n\n## Current Behavior\n\n```json\n{\n  \"mcpServers\": {\n    \"git\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"mcp-server-git\",\n        \"--repository\",\n        \".\"\n      ]\n    }\n  }\n}\n```\n\nThis only works when the MCP client is launched exactly from the repository root.\n\n## Proposed Solution: Make `.` Auto-detect Repository Root (Preferred)\n\nWhen `--repository .` is specified, `mcp-server-git` should automatically search upward from the current directory to find the git repository root, just like standard git commands do.\n\n**Implementation:** Use `git rev-parse --show-toplevel` to find the repository root when the specified path is `.` or any path within a git repository.\n\n**Benefits:**\n- **Matches standard git behavior**: Every git command (git status, git log, etc.) works from anywhere inside the repository\n- **Zero configuration changes needed**: Existing configurations with `--repository .` would just work better\n- **Team-friendly**: Shared configuration works for all developers regardless of:\n  - Which subdirectory they're working in\n  - Where they cloned the repository\n  - Which OS they're using\n\n## Alternative Solutions (Less Preferred)\n\n### Option 2: Environment Variable Expansion\nAllow `--repository \"${GIT_REPO_ROOT}\"` but this still requires configuration and environment setup.\n\n### Option 3: New Flag\nAdd `--auto-detect-root` flag, but this breaks existing configurations and is less intuitive than making `.` work naturally.\n\n## Use Case\n\nWe maintain a large IaC repository (~1000 files) with multiple subdirectories (`terraform/`, `applications/`, etc.). Team members work in specific subdirectories, and the current behavior forces us to either:\n- Always launch the MCP client from root (inconvenient)\n- Maintain per-developer absolute paths in local config files (maintenance burden)\n\nStandard git commands work perfectly from any subdirectory—`mcp-server-git` should too.\n\n## Comparison with Standard Git Behavior\n\n```bash\n# These work from ANY subdirectory within a git repo:\ncd /path/to/repo/terraform/environments/production\ngit status              # ✅ Works - finds repo root automatically\ngit log                 # ✅ Works - finds repo root automatically\n\n# But mcp-server-git with --repository . does NOT:\nmcp-server-git --repository .  # ❌ Uses CWD literally, doesn't find repo root\n```\n\nWould be happy to contribute a PR for this!",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3029/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3013",
      "id": 3632728291,
      "node_id": "I_kwDONRaG_87Yhwjj",
      "number": 3013,
      "title": "create_relations and add_observations failing WSL2 VSCode",
      "user": {
        "login": "davidw-philips",
        "id": 223673186,
        "node_id": "U_kgDODVT7Yg",
        "avatar_url": "https://avatars.githubusercontent.com/u/223673186?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/davidw-philips",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-11-17T10:36:37Z",
      "updated_at": "2025-11-17T10:36:37Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nI'm using VSCODE copilot 4.5 with a custom Agent mode.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n\nFor add_observations \n\nInput:\n{\n  \"observations\": [\n    {\n      \"entityName\": \"project\",\n      \"contents\": [\n        \"Implemented\",\n        \"Status system modules: \",\n        \"Status states: CANCELLED\",\n        \"All 30 unit tests passing for functionality\",\n        \"Progress bar\",\n        \"System designed\"\n      ]\n    }\n  ]\n}\n\nOutput: \nError: MPC -32603: Unexpected non-whitespace character after JSON at position 127 (line 1 column 128)\n\n\nFor create_entities\n\nInput: \n{\n  \"relations\": [\n    {\n      \"from\": \"framework project\",\n      \"to\": \"Implementation\",\n      \"relationType\": \"implements\"\n    }\n  ]\n}\n\nOutput:\nError: MPC -32603: Unexpected non-whitespace character after JSON at position 127 (line 1 column 128)\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Logs**\n2025-11-17 12:22:01.801 [info] Error reading from async stream, we will reconnect: TypeError: terminated\n2025-11-17 12:27:03.682 [info] Error reading from async stream, we will reconnect: TypeError: terminated\n\n**Additional context**\nRestarting it did not work. It failed again with the same error. Here's the MCP.json entry:\n\t\t\"memory\": {\n\t\t\t\"command\": \"npx\",\n\t\t\t\"args\": [\"-y\", \"@modelcontextprotocol/server-memory\"],\n\t\t\t\"startupTimeout\": 30000\n\t\t},",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3013/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2990",
      "id": 3620606266,
      "node_id": "I_kwDONRaG_87XzhE6",
      "number": 2990,
      "title": "The GitHub MCP Registry is not supported in version 1.106 of VS Code.",
      "user": {
        "login": "DanielCaveSophos",
        "id": 99478314,
        "node_id": "U_kgDOBe3rKg",
        "avatar_url": "https://avatars.githubusercontent.com/u/99478314?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/DanielCaveSophos",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-11-13T10:35:33Z",
      "updated_at": "2025-11-25T04:31:43Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nThe GitHub MCP Registry is not supported in version 1.106 of VS Code. After update any installed MCP servers will fail to start and no further servers can be installed. \n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Install or update VS Code to 1.106.0\n2. Configure Copilot Policies to use MCP registry URL https://github.com/mcp and restriction to Registry Only\n3. Confirm that settings sync has completed and that @id:chat.mcp.access is showing as registry\n4. Attempt to install the Atlassian MCP server. The install will be blocked by policy. \n**Expected behavior**\nAs the Atlassian MCP server is a valid listing in the registry, it should allow the install or running of the MCP server when the mcp access policy is set to registry\n\n**Logs**\nIf applicable, add logs to help explain your problem.\n\n**Additional context**\nAdd any other context about the problem here.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2990/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2975",
      "id": 3605060180,
      "node_id": "I_kwDONRaG_87W4NpU",
      "number": 2975,
      "title": "Feature Request: Log File Size Management and Rotation",
      "user": {
        "login": "AMoorer",
        "id": 896323,
        "node_id": "MDQ6VXNlcjg5NjMyMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/896323?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/AMoorer",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-11-09T14:22:11Z",
      "updated_at": "2025-11-11T04:14:26Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem?**\n\nYes. The `@modelcontextprotocol/server-filesystem` MCP server generates unbounded log files in `%APPDATA%\\Claude\\logs\\mcp-server-filesystem*.log` (Windows) / `~/Library/Logs/Claude/` (macOS) that can grow to excessive sizes (17+ MB observed), creating several issues:\n\n1. **Performance degradation**: Large log files slow down log viewing and parsing during troubleshooting\n2. **Disk space waste**: Logs consume unnecessary space without automatic cleanup\n3. **Troubleshooting obstruction**: Ironically, oversized logs defeat their debugging purpose by becoming unwieldy\n4. **User maintenance burden**: Manual cleanup required, which most users won't perform regularly\n\n**Describe the solution you'd like**\n\nAdd configurable log rotation with size-based and/or time-based triggers:\n\n### Proposed Configuration Options\n\n**Environment Variables:**\n```bash\nMCP_FILESYSTEM_LOG_MAX_SIZE=10485760  # Max log size in bytes (default: 10MB)\nMCP_FILESYSTEM_LOG_MAX_FILES=5        # Number of rotated logs to retain (default: 5)\nMCP_FILESYSTEM_LOG_ROTATION=size      # Rotation strategy: 'size', 'time', or 'both' (default: size)\nMCP_FILESYSTEM_LOG_INTERVAL=86400     # Rotation interval in seconds (default: daily)\n```\n\n**Alternative: Command-line Arguments:**\n```bash\nnpx @modelcontextprotocol/server-filesystem \\\n  --log-max-size 10M \\\n  --log-max-files 5 \\\n  --log-rotation size \\\n  /path/to/allowed/dir\n```\n\n### Rotation Behavior\n\n1. **Size-based rotation**: When log file exceeds `LOG_MAX_SIZE`, rotate immediately\n2. **Time-based rotation**: Rotate at fixed intervals (e.g., daily at midnight)\n3. **File naming convention**: `mcp-server-filesystem.log`, `mcp-server-filesystem.log.1`, `mcp-server-filesystem.log.2`, etc.\n4. **Automatic cleanup**: Delete oldest log when `LOG_MAX_FILES` limit reached\n5. **Graceful degradation**: If rotation fails, log to stderr and continue operation\n\n**Describe alternatives you've considered**\n\n1. **External log rotation tools**: \n   - Windows Task Scheduler + batch scripts\n   - Linux `logrotate`\n   - **Problem**: Requires per-user configuration; not portable across installations\n\n2. **Desktop Commander MCP**: Includes 10MB auto-rotation but introduces complexity for users only needing basic filesystem access\n\n3. **Manual periodic deletion**: Impractical; most users unaware logs exist until problems arise\n\n**Additional context**\n\n- Related discussion: Issue #1879 proposes environment variable configuration; log management would complement that effort\n- Community need: Multiple users report log bloat issues in Discord/support channels\n- Reference implementation: Desktop Commander MCP successfully implements 10MB rotation\n\n**Implementation Notes**\n\nConsider using established Node.js logging libraries with built-in rotation:\n- `winston` with `winston-daily-rotate-file`\n- `pino` with `pino-roll`\n- Or lightweight custom implementation (~50 LOC)\n\nDefault to conservative settings (10MB max, 5 file retention) to balance disk usage against debugging needs.\n\n**Would you be willing to submit a PR?**\n\nPotentially, depending on maintainer guidance regarding preferred implementation approach (library vs. custom, env vars vs. CLI args).",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2975/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2962",
      "id": 3598563615,
      "node_id": "I_kwDONRaG_87Wfbkf",
      "number": 2962,
      "title": "filesystem MCP server still doesn't support legal Windows pathnames in claude_desktop_config.json",
      "user": {
        "login": "NemanSyed",
        "id": 38197868,
        "node_id": "MDQ6VXNlcjM4MTk3ODY4",
        "avatar_url": "https://avatars.githubusercontent.com/u/38197868?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/NemanSyed",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-11-07T03:50:05Z",
      "updated_at": "2025-11-07T03:50:05Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Please see the closed https://github.com/modelcontextprotocol/servers/issues/447 for the full story. I can't reopen the issue.\nIt was supposed to be resolved in https://github.com/modelcontextprotocol/servers/pull/543 but it's still failing in Claude Desktop 1.0.0332 (b563c9). It appears to be worse as it no longer supports the `/Users/whatever` style pathnames, only the `\"C:\\\\Users\\\\whatever\"` ones.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2962/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2943",
      "id": 3579486224,
      "node_id": "I_kwDONRaG_87VWqAQ",
      "number": 2943,
      "title": "Windows: SSH-based MCP servers require PROGRAMDATA environment variable",
      "user": {
        "login": "NF1198",
        "id": 10329321,
        "node_id": "MDQ6VXNlcjEwMzI5MzIx",
        "avatar_url": "https://avatars.githubusercontent.com/u/10329321?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/NF1198",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-11-02T12:10:16Z",
      "updated_at": "2025-11-02T12:10:16Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Issue\nSSH connections fail when MCP servers are launched from Claude Desktop on Windows.\n\n## Common Use Case\nRunning an MCP server on a remote host (Raspberry Pi, home server, NAS, another PC on local network) and connecting to it via SSH from Windows Claude Desktop.\n\n## Root Cause\nClaude Desktop launches MCP servers with a minimal environment missing PROGRAMDATA, which OpenSSH on Windows requires to locate system SSH configuration files.\n\n## Solution\nAdd PROGRAMDATA to the env configuration:\n\n```\n    {\n      \"mcpServers\": {\n        \"my-remote-server\": {\n          \"command\": \"C:\\\\WINDOWS\\\\System32\\\\OpenSSH\\\\ssh.exe\",\n          \"args\": [\n            \"user@remote-host.local\",\n            \"-o\", \"StrictHostKeyChecking=accept-new\",\n            \"-i\", \"C:\\\\Users\\\\username\\\\.ssh\\\\id_ed25519\",\n            \"/path/to/remote/mcp-server/command\"\n          ],\n          \"env\": {\n            \"PROGRAMDATA\": \"C:\\\\ProgramData\"\n          }\n        }\n      }\n    }\n```\n\n## Recommendation\n1. Add this to Windows troubleshooting documentation\n2. Consider passing PROGRAMDATA by default for Windows MCP server environments\n\n## Environment\n- OS: Windows 11\n- Claude Desktop\n- OpenSSH (Windows built-in)\n- Remote MCP server over SSH on local network",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2943/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2912",
      "id": 3554448722,
      "node_id": "I_kwDONRaG_87T3JVS",
      "number": 2912,
      "title": "Huge memory occupation by sequentialthinking MCP",
      "user": {
        "login": "MekayelAnik",
        "id": 32511246,
        "node_id": "MDQ6VXNlcjMyNTExMjQ2",
        "avatar_url": "https://avatars.githubusercontent.com/u/32511246?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/MekayelAnik",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359497168,
          "node_id": "LA_kwDONRaG_88AAAAB8kPN0A",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-sequentialthinking",
          "name": "server-sequentialthinking",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Sequential Thinking MCP server - src/sequentialthinking"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-10-26T21:08:17Z",
      "updated_at": "2025-12-08T03:57:48Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\n\nAfter using **`sequentialthinking`** for a few hours, the RAM gets hogged up by this MCP server as much as 10GB+ RAM or more (I had this much RAM available, so..). But I doubt it is the Planning, because 10+ GB of Text is a huge amount of text, I DON'T THINK it was the TEXT. I strongly think there is a memory leak.\n\n**To Reproduce**\n\n1. Use this MCP for a few (6-8) hours for frequent and long planning\n\n**Expected behavior**\nThe memory should be freed after a job is done, or the memory should be offloaded to a disk space after a certain period of time.  This should also help with persistent planning (Maybe, add a new tool for this). \n\n**Additional context**\nI have deployed this MCP as a distributed, standalone [Docker container](https://hub.docker.com/r/mekayelanik/sequential-thinking-mcp).\n\nI love this MCP, a really great project.  MANY MANY THANKS to the `modelcontextprotocol` Team\nRegards",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2912/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3321
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2894",
      "id": 3537505942,
      "node_id": "I_kwDONRaG_87S2g6W",
      "number": 2894,
      "title": "Admin Console: 'Json Path' field uses jq syntax instead of JSONPath specification",
      "user": {
        "login": "jonpspri",
        "id": 2462804,
        "node_id": "MDQ6VXNlcjI0NjI4MDQ=",
        "avatar_url": "https://avatars.githubusercontent.com/u/2462804?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jonpspri",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-10-21T17:25:57Z",
      "updated_at": "2025-11-08T02:59:33Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Problem\n\nThe \"Json Path\" field on the Tools tab of the admin console is misleadingly labeled, as it's eventually processed by `jq` rather than using the [JSONPath specification](https://datatracker.ietf.org/doc/html/rfc9535). This creates confusion for users who expect standard JSONPath syntax.\n\n**Current behavior:**\n- Field labeled as \"Json Path\"\n- Actually requires `jq` syntax (e.g., `.result.items[]`)\n- No indication that `jq` format is required\n\n**Expected behavior:**\n- Field name should reflect actual syntax requirements\n- OR: Support standards-compliant JSONPath\n- OR: Support multiple query formats with clear indication\n\n## Proposed Solutions\n\n### Option 1: Use Standards-Compliant JSONPath Library\nReplace `jq` processing with a JSONPath RFC 9535 compliant library:\n- Python: `jsonpath-ng` or `jsonpath-rw`\n- Benefits: Industry standard, more portable, better documentation\n- Considerations: Feature parity with current `jq` capabilities\n\n### Option 2: Support Multiple Formats\nAdd format selection with multi-field input:\n- Dropdown to select query language: `jq` | `JSONPath` | `JMESPath`\n- Field label updates based on selection\n- Backend routes to appropriate processor\n- Benefits: Maximum flexibility, backward compatibility\n\n### Option 3: Rename Field\nSimplest fix: Rename \"Json Path\" to \"jq Query\" or \"jq Expression\"\n- Minimal code change\n- Accurate labeling\n- Maintains current functionality\n\n## Additional Context\n\n**Affected files (likely):**\n- Admin UI templates/components for Tools tab\n- Backend validation/processing for tool JSON path queries\n- Any documentation referencing this field\n\n**Standards References:**\n- [RFC 9535: JSONPath Specification](https://datatracker.ietf.org/doc/html/rfc9535)\n- [jq Manual](https://jqlang.github.io/jq/manual/)\n- [JMESPath Specification](https://jmespath.org/specification.html)\n\n## Impact\n\n- **User Experience**: Confusing for users familiar with JSONPath standard\n- **Documentation**: Misleading field name requires extra explanation\n- **Interoperability**: Non-standard query syntax limits portability",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2894/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2853",
      "id": 3511996832,
      "node_id": "I_kwDONRaG_87RVNGg",
      "number": 2853,
      "title": "mcp-server-time: Default Time Zone",
      "user": {
        "login": "daryltucker",
        "id": 1609490,
        "node_id": "MDQ6VXNlcjE2MDk0OTA=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1609490?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/daryltucker",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8359497353,
          "node_id": "LA_kwDONRaG_88AAAAB8kPOiQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-time",
          "name": "server-time",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Time MCP server - src/time"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-10-14T01:17:43Z",
      "updated_at": "2025-10-29T02:22:21Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "I feel like forcing specification of a timezone is wasteful, and `--local-timezone` should be the default when unspecified via tool request.\n\nWhen `mcp-server-time` is provided `--local-timezone`, the LLM should not have to specify the time.\n1. Wasteful, error-prone with previous behavior\n2. The LLM could learn the TZ simply by looking up the time with this behavior\n\nI am wasting too much context enforcing LLMs to specify the timezone.  It doesn't make sense to them, and it doesn't make sense to me either.\n\n\n```json\n{\n\"error\": \"HTTP error 422: {\\\"detail\\\":[{\\\"type\\\":\\\"missing\\\",\\\"loc\\\":[\\\"body\\\",\\\"timezone\\\"],\\\"msg\\\":\\\"Field required\\\",\\\"input\\\":{}}]}\"\n}\n```\n\n```\n\"error\": \"500: {'message': 'Error processing mcp-server-time query: Missing required argument: timezone'}\"\n```\n```\n{\n  \"detail\": [\n    {\n      \"type\": \"missing\",\n      \"loc\": [\n        \"body\",\n        \"timezone\"\n      ],\n      \"msg\": \"Field required\",\n      \"input\": {}\n    }\n  ]\n}\n```\n\nIs this behavior already available and I am missing something?\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2853/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2807",
      "id": 3477539987,
      "node_id": "I_kwDONRaG_87PRwyT",
      "number": 2807,
      "title": "filesystem: write_or_update_file",
      "user": {
        "login": "agn-7",
        "id": 14202344,
        "node_id": "MDQ6VXNlcjE0MjAyMzQ0",
        "avatar_url": "https://avatars.githubusercontent.com/u/14202344?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/agn-7",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-10-02T13:29:10Z",
      "updated_at": "2025-10-02T13:55:17Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "With the filesystem MCP server, how can I write to a file in a way that, if it does not exist, creates the file, then adds the content to it; if it exists, updates the file by *appending* the new content, rather than overwriting the existing content in the file? Is it possible? Does it have such a tool?\n\nsomething like `write_or_update_file` or `append_file` with creation of the file if it doesn't exist, and keeping the previous content. or even an option for `write_file` to append the new content in the existing file, not overwriting . . .",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2807/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        2816
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2794",
      "id": 3468360172,
      "node_id": "I_kwDONRaG_87Ouvns",
      "number": 2794,
      "title": "No tools detected for filesystem when using Docker",
      "user": {
        "login": "icf20",
        "id": 17784575,
        "node_id": "MDQ6VXNlcjE3Nzg0NTc1",
        "avatar_url": "https://avatars.githubusercontent.com/u/17784575?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/icf20",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-09-30T09:15:43Z",
      "updated_at": "2025-10-19T14:16:16Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "https://hub.docker.com/mcp/server/filesystem/tools\n\nconnecting this to lmstudio was easy but no tools get detected, connecting this to other client using docker manual way also show no tools \n\ntools from other MCP do show up so i assume is just filesystem",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2794/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2792",
      "id": 3467285217,
      "node_id": "I_kwDONRaG_87OqpLh",
      "number": 2792,
      "title": "Claude Code Sonnet 4.5 randomly crash with sequentialthinking (MCP)",
      "user": {
        "login": "suraneti",
        "id": 26770227,
        "node_id": "MDQ6VXNlcjI2NzcwMjI3",
        "avatar_url": "https://avatars.githubusercontent.com/u/26770227?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/suraneti",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359497168,
          "node_id": "LA_kwDONRaG_88AAAAB8kPN0A",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-sequentialthinking",
          "name": "server-sequentialthinking",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Sequential Thinking MCP server - src/sequentialthinking"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-09-30T02:29:58Z",
      "updated_at": "2025-10-29T04:31:10Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nWhen an Agent tries to use MCP, it crashes randomly sometimes.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Claude Code Sonnet 4.5\n2. Trigger sequentialthinking (MCP)\n\n**Expected behavior**\nIt should be working the same as sonnet 4\n\n**Logs**\n```\nsequential-thinking - sequentialthinking (MCP)(thought: XXX)\n\n  Error: {\n       \"error\": \"Invalid thoughtNumber: must be a number\",\n       \"status\": \"failed\"\n     }\n```\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2792/reactions",
        "total_count": 3,
        "+1": 3,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2762",
      "id": 3450054272,
      "node_id": "I_kwDONRaG_87No6aA",
      "number": 2762,
      "title": "agent frequently hangs indefinitely (indicated by a persistent loading spinner) after a Sequential_Thinkingcall",
      "user": {
        "login": "hgcode1130",
        "id": 168337687,
        "node_id": "U_kgDOCgihFw",
        "avatar_url": "https://avatars.githubusercontent.com/u/168337687?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/hgcode1130",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-09-24T16:02:40Z",
      "updated_at": "2025-10-19T14:20:49Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### **Describe the bug**\n\nWhen using `Sequential_Thinking` mode with either the `augment agent` or `claude code`, the agent frequently hangs indefinitely (indicated by a persistent loading spinner) after an `mcp` call. It fails to automatically proceed to the next thought or action, causing the entire task to stall.\n\n### **To Reproduce**\n\nSteps to reproduce the behavior:\n\n1.  Start a task that requires multi-step reasoning using either `augment agent` or `claude code`.\n2.  Ensure the `Sequential_Thinking` mode is triggered.\n3.  Monitor the agent's execution flow until it makes an `mcp` call within its `THOUGHT` process.\n4.  Observe that after the current `THOUGHT` is complete, the agent gets stuck in a loading state and does not advance to the next step.\n\n**Workaround:**\nThe user must manually stop the generation and then send a new message (e.g., \"continue\" or \"go on\") to prompt the agent to resume the task. However, the issue may recur in subsequent steps.\n\n### **Expected behavior**\n\nWithin a `Sequential_Thinking` flow, after completing a `THOUGHT` step that includes an `mcp` call, the agent should seamlessly and automatically proceed to the next `THOUGHT` until the task is complete, without requiring any manual intervention.\n\n### **Logs**\n\nWhile detailed text logs are not available, the attached screenshot illustrates the point of failure. As shown, the agent has completed the 7th thought (`THOUGHTNUMBER: 7`) and recognizes that a next step is required (`NEXTTHOUGHTNEEDED: true`), but it fails to automatically advance to the 8th thought.\n\n<img width=\"528\" height=\"1000\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/3fff9c80-a285-4ef5-a5c9-e7e6edf481eb\" />\n\n<img width=\"557\" height=\"615\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/7822af87-177d-45f8-b1ed-b0ea902af09f\" />\n\n```\n// State similar to the one in the screenshot\nTHOUGHT\n... (mcp call and reasoning) ...\nNEXTTHOUGHTNEEDED\ntrue\nTHOUGHTNUMBER\n7\nTOTALTHOUGHTS\n8\n// <<< Agent hangs here and does not proceed to THOUGHT 8\n```\n\n### **Additional context**\n\nThis issue occurs frequently and severely impacts the continuity of automated workflows for complex tasks. The manual workaround is inefficient and disrupts the user experience.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2762/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2732",
      "id": 3428336065,
      "node_id": "I_kwDONRaG_87MWEHB",
      "number": 2732,
      "title": "Does MCP `git` support .gitignore feature?",
      "user": {
        "login": "mosjin",
        "id": 3736908,
        "node_id": "MDQ6VXNlcjM3MzY5MDg=",
        "avatar_url": "https://avatars.githubusercontent.com/u/3736908?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/mosjin",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-09-18T01:57:39Z",
      "updated_at": "2025-09-18T01:57:39Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nI use `git` MCP to auto commit/push codes to repo, but it pushes `.git/` ,` .venv/` dir to repo even I ignored them with .gitignore...\n\n**Describe the solution you'd like**\n`git` MCP should ignore files/dirs within `.gitignore`\n\n**Describe alternatives you've considered**\nDefine the ignore rules for AI IDE like cursor...\n\n**Additional context**\nIn this commit, lots of files within `.git` dir commited by `git` MCP.\n\n<img width=\"988\" height=\"207\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/da74f135-0bef-458f-a0cd-1cddae528df6\" />\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2732/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2710",
      "id": 3411408270,
      "node_id": "I_kwDONRaG_87LVfWO",
      "number": 2710,
      "title": "Get past time from the Time MCP server",
      "user": {
        "login": "saroad2",
        "id": 19425795,
        "node_id": "MDQ6VXNlcjE5NDI1Nzk1",
        "avatar_url": "https://avatars.githubusercontent.com/u/19425795?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/saroad2",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8359497353,
          "node_id": "LA_kwDONRaG_88AAAAB8kPOiQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-time",
          "name": "server-time",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Time MCP server - src/time"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-09-12T17:46:32Z",
      "updated_at": "2025-10-29T02:26:50Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nAs part of my work, I need a way to get past time.\nFor example, one of my customers might ask something like \"Which requests were sent in the last 5 hours?\"\nI need to first fetch the time from 5 hours ago, and then call the tool that can fetch those requests based on a start time and end time.\n\n**Describe the solution you'd like**\nI would like to have a tool called `get_time_ago` with the following fields:\n- days_ago: int of how many days ago the time should be\n- hours_ago: int of how many hours ago the time should be \n- minutes_ago: int of how many minutes ago the time should be \n- seconds_ago: int of how many second ago the time should be\n- milliseconds_ago: int of how many milliseconds ago the time should\n\nSo for example, if I ask the LLM \"Give me all the requests from two and a half hours ago\", it will call `get_time_ago(hours_ago=2, minutes_ago=30)`\n\n**Describe alternatives you've considered**\nOne possible alternative is that the LLM will call the `get_current_time` tool and deduce the past time on its own. Meaning, that this capability will be handled in the LLM side instead of the MCP side.\nFrom my experience, LLMs have hard time to calculate time on their own, so if I run the \"get_current_time\" tool, the LLM might not be able to deduce the new time from the returned string. Having a dedicated tool for that will probably make our lives easier that way.\n\n**Additional context**\nIf I will get an OK from the maintainers, I would gladly implement this!\nIn the implementation, I would probably use the `datetime.timedelta` class to handle the time differences.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2710/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2703",
      "id": 3402736551,
      "node_id": "I_kwDONRaG_87K0aOn",
      "number": 2703,
      "title": "[bug] list_directory params is not allowed to have the additional property depth",
      "user": {
        "login": "alxekb",
        "id": 33656756,
        "node_id": "MDQ6VXNlcjMzNjU2NzU2",
        "avatar_url": "https://avatars.githubusercontent.com/u/33656756?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/alxekb",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-09-10T14:32:26Z",
      "updated_at": "2025-09-10T14:38:02Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nA clear and concise description of what the bug is.\nModel failed to generate a tool call\n\nFailed to parse arguments for tool \"list_directory\": params is not allowed to have the additional property \"depth\"\n\n<|start|>assistant<|channel|>commentary to=functions.list_directory <|constrain|>json<|message|>{\"path\":\"/Users/alekseiivanov/dev/github/application/app/composites/contracts/ai_document_analyser\",\"depth\":1}\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1.  Open LM Studio on on Mac\n2. Load lmstudio-community/gpt-oss-120b-MLX-8bit model\n3. add filesystem mcp and ask it to list direcotry\n4. it will call a tool with a `depth` argument which breaks the flow.\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\nfilesystem mcp successfully lists directory as it does with qwen3 models.\n\n\n**Logs**\nIf applicable, add logs to help explain your problem.\n```\nModel failed to generate a tool call\n\nFailed to parse arguments for tool \"list_directory\": params is not allowed to have the additional property \"depth\"\n\n<|start|>assistant<|channel|>commentary to=functions.list_directory <|constrain|>json<|message|>{\"path\":\"./\", \"depth\":2}\n```\n**Additional context**\nAdd any other context about the problem here.\n\n\nMaybe I'm misusing the tool. But it might be useful to add an optional parameter here\nhttps://github.com/modelcontextprotocol/servers/blob/8ba0ff5e4c74b1b0034f30f4ad75632183df67f4/src/filesystem/index.ts#L117",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2703/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2689",
      "id": 3390536996,
      "node_id": "I_kwDONRaG_87KF30k",
      "number": 2689,
      "title": "Knowledge Graph Memory Server failing to create memories",
      "user": {
        "login": "kurokirasama",
        "id": 5784951,
        "node_id": "MDQ6VXNlcjU3ODQ5NTE=",
        "avatar_url": "https://avatars.githubusercontent.com/u/5784951?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/kurokirasama",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359496976,
          "node_id": "LA_kwDONRaG_88AAAAB8kPNEA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-memory",
          "name": "server-memory",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Memory MCP server - src/memory"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-09-06T17:06:55Z",
      "updated_at": "2025-10-07T06:27:37Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "description created by the model itself:\n\n# Bug Report: Persistent JSON Parsing Error in Knowledge Graph Tools\n\n**ID:** 2025-09-06\n**Component:** `create_entities`, `create_relations` tools\n**Severity:** Critical (Tools are unusable)\n\n## Description\n\nThe `create_entities` and `create_relations` tools consistently fail with a JSON parsing error, preventing any data from being saved to the knowledge graph. The error occurs regardless of the input structure, suggesting a fundamental issue with how the tools process arguments.\n\n## Environment\n\n-   **Execution Context:** Gemini CLI Agent\n-   **Tools:** `default_api.create_entities`, `default_api.create_relations`\n\n## Steps to Reproduce\n\n1.  Attempt to call either `create_entities` or `create_relations`.\n2.  Provide a `list` of `dict` objects as the `entities` or `relations` argument, as per the tool's apparent structure.\n3.  The tool call fails before any data validation can occur.\n\n## Expected Behavior\n\nThe tool should accept a list of dictionary objects, parse them correctly, and create the corresponding entities or relations in the knowledge graph.\n\n## Actual Behavior\n\nThe tool consistently returns the following error:\n\n`{\"error\": \"MCP error -32603: Unexpected non-whitespace character after JSON at position 102 (line 1 column 103)\"}`\n\nThis error suggests that the tool's JSON parser successfully parses a valid JSON object but then encounters unexpected additional characters. This is highly unusual given the input is a standard Python list of dictionaries.\n\n## Troubleshooting Attempts\n\nMultiple strategies were employed to diagnose and bypass the error, all of which were unsuccessful.\n\n### Attempt 1: Standard Dictionary Literal\n\n-   **Action:** Passed a standard Python list of dictionaries as a keyword argument.\n-   **Result:** Failed with the persistent JSON parsing error.\n\n### Attempt 2: Escaping Special Characters\n\n-   **Action:** Escaped all single quotes within string values (`\\'` ) to prevent potential string termination issues.\n-   **Result:** Failed with the same error.\n\n### Attempt 3: Separating Creation and Observation\n\n-   **Action:** Called `create_entities` with only `name` and `entityType`, followed by a separate `add_observations` call.\n-   **Result:** `create_entities` failed with a validation error (`'observations' is a required property`), proving this approach was incorrect. The `add_observations` call failed with the same JSON parsing error.\n\n### Attempt 4: Simplifying Input\n\n-   **Action:** Removed all special characters, spaces, and punctuation from all string literals, using only alphanumeric characters and underscores.\n-   **Result:** Failed with the same error, indicating the issue is not with the content of the strings themselves.\n\n### Attempt 5: Individual, Atomic Calls\n\n-   **Action:** The final attempt involved breaking the request into individual tool calls for every single entity and relation, with each call containing a list with only one dictionary object.\n-   **Result:** Every single call failed with the exact same JSON parsing error.\n\n## Conclusion\n\nThe error's consistency across vastly different inputs (from complex lists to single, simple objects) and its specific failure position (102) strongly suggest a systemic bug in the tool's argument parsing layer. It does not appear to be related to the user-provided input's content or structure, as all reasonable formats have been attempted. The tool appears to be fundamentally unable to parse the list of dictionaries passed to it.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2689/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2680",
      "id": 3386164023,
      "node_id": "I_kwDONRaG_87J1MM3",
      "number": 2680,
      "title": "Toolsmith APP Comprehensive Testing Suite",
      "user": {
        "login": "omri10007",
        "id": 187197989,
        "node_id": "U_kgDOCyhqJQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/187197989?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/omri10007",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-09-05T03:46:33Z",
      "updated_at": "2025-09-05T03:46:33Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": null,
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2680/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2659",
      "id": 3371843657,
      "node_id": "I_kwDONRaG_87I-kBJ",
      "number": 2659,
      "title": "Request: Review auto-generated MCP permission manifest for Time",
      "user": {
        "login": "buehler",
        "id": 1067213,
        "node_id": "MDQ6VXNlcjEwNjcyMTM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1067213?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/buehler",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-09-01T08:54:52Z",
      "updated_at": "2025-09-01T08:54:52Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Dear Authors / Maintainers,\n\nWe are researchers from the University of St. Gallen studying how to make Model Context Protocol (MCP) servers safer to run via a sandboxed permission system. As part of our study, we auto generated a permission manifest for your MCP server and would love your feedback on whether it is correct and complete.\n\nThe MCP server in question is: Time\n\nPlease review the manifest below and let us know:\n\n* Are the permissions and their scopes correct?\n* Are any permissions missing?\n* Do any permissions need to be runtime-scoped (e.g., a specific project directory) rather than global?\n\n**Proposed manifest (please review)**\n\n```json\n{\n  \"description\": \"Time MCP Server: provides current time and timezone conversion using IANA timezone names. Detects the host system timezone (with optional CLI override). All processing is local; no network access required.\",\n  \"permissions\": [\n    \"mcp.ac.filesystem.read\"\n  ]\n}\n```\n\nPlease let us know if you have any questions and/or remarks.\n\nIn case you want to see the (current) full permission system:\n<details><summary>MCP Permission System</summary>\n<p>\n\n| Permission                         | Description                     | Notes                                      |\n| ---------------------------------- | ------------------------------- | ------------------------------------------ |\n| `mcp.ac.filesystem.read`           | Read files/directories          |                                            |\n| `mcp.ac.filesystem.write`          | Write/create files              |                                            |\n| `mcp.ac.filesystem.delete`         | Delete files or directories     |                                            |\n| `mcp.ac.system.env.read`           | Read environment variables      | e.g., `API_KEY`, `PATH`                    |\n| `mcp.ac.system.env.write`          | Set environment variables       | setting the env variables                  |\n| `mcp.ac.system.exec`               | Execute OS commands             | CLI runners, shells                        |\n| `mcp.ac.system.process`            | List or kill processes          |                                            |\n| `mcp.ac.network.client`            | General Outgoing network access |                                            |\n| `mcp.ac.network.server`            | Accept incoming connections     |                                            |\n| `mcp.ac.network.bluetooth`         | Use Bluetooth connections       | macOS TCC-protected                        |\n| `mcp.ac.peripheral.camera`         | Capture images/video            | macOS TCC-controlled                       |\n| `mcp.ac.peripheral.microphone`     | Record audio                    | TCC-protected                              |\n| `mcp.ac.peripheral.speaker`        | Play audio                      |                                            |\n| `mcp.ac.peripheral.screen.capture` | Screen capture                  | Requires consent (macOS: Screen Recording) |\n| `mcp.ac.location`                  | Access location data            | From Wi-Fi, IP, GNSS                       |\n| `mcp.ac.notifications.post`        | Show system notifications       | macOS/Windows                              |\n| `mcp.ac.clipboard.read` / `.write` | Read/write clipboard            | Copy-paste support                         |\n\n</p>\n</details>\n\nThank you very much for your time and your efforts in making MCP more secure.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2659/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2658",
      "id": 3371842797,
      "node_id": "I_kwDONRaG_87I-jzt",
      "number": 2658,
      "title": "Request: Review auto-generated MCP permission manifest for Sequential_Thinking",
      "user": {
        "login": "buehler",
        "id": 1067213,
        "node_id": "MDQ6VXNlcjEwNjcyMTM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1067213?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/buehler",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-09-01T08:54:40Z",
      "updated_at": "2025-09-01T08:54:40Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Dear Authors / Maintainers,\n\nWe are researchers from the University of St. Gallen studying how to make Model Context Protocol (MCP) servers safer to run via a sandboxed permission system. As part of our study, we auto generated a permission manifest for your MCP server and would love your feedback on whether it is correct and complete.\n\nThe MCP server in question is: Sequential_Thinking\n\nPlease review the manifest below and let us know:\n\n* Are the permissions and their scopes correct?\n* Are any permissions missing?\n* Do any permissions need to be runtime-scoped (e.g., a specific project directory) rather than global?\n\n**Proposed manifest (please review)**\n\n```json\n{\n  \"description\": \"Sequential Thinking MCP Server: a lightweight Node.js stdio server exposing a single tool (sequentialthinking) for step-by-step, revisable, and branchable reasoning. It maintains in-memory state and optionally logs formatted thoughts to stderr, configurable via the DISABLE_THOUGHT_LOGGING environment variable. No network or external filesystem access is required.\",\n  \"permissions\": [\n    \"mcp.ac.system.env.read\"\n  ]\n}\n```\n\nPlease let us know if you have any questions and/or remarks.\n\nIn case you want to see the (current) full permission system:\n<details><summary>MCP Permission System</summary>\n<p>\n\n| Permission                         | Description                     | Notes                                      |\n| ---------------------------------- | ------------------------------- | ------------------------------------------ |\n| `mcp.ac.filesystem.read`           | Read files/directories          |                                            |\n| `mcp.ac.filesystem.write`          | Write/create files              |                                            |\n| `mcp.ac.filesystem.delete`         | Delete files or directories     |                                            |\n| `mcp.ac.system.env.read`           | Read environment variables      | e.g., `API_KEY`, `PATH`                    |\n| `mcp.ac.system.env.write`          | Set environment variables       | setting the env variables                  |\n| `mcp.ac.system.exec`               | Execute OS commands             | CLI runners, shells                        |\n| `mcp.ac.system.process`            | List or kill processes          |                                            |\n| `mcp.ac.network.client`            | General Outgoing network access |                                            |\n| `mcp.ac.network.server`            | Accept incoming connections     |                                            |\n| `mcp.ac.network.bluetooth`         | Use Bluetooth connections       | macOS TCC-protected                        |\n| `mcp.ac.peripheral.camera`         | Capture images/video            | macOS TCC-controlled                       |\n| `mcp.ac.peripheral.microphone`     | Record audio                    | TCC-protected                              |\n| `mcp.ac.peripheral.speaker`        | Play audio                      |                                            |\n| `mcp.ac.peripheral.screen.capture` | Screen capture                  | Requires consent (macOS: Screen Recording) |\n| `mcp.ac.location`                  | Access location data            | From Wi-Fi, IP, GNSS                       |\n| `mcp.ac.notifications.post`        | Show system notifications       | macOS/Windows                              |\n| `mcp.ac.clipboard.read` / `.write` | Read/write clipboard            | Copy-paste support                         |\n\n</p>\n</details>\n\nThank you very much for your time and your efforts in making MCP more secure.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2658/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2657",
      "id": 3371841047,
      "node_id": "I_kwDONRaG_87I-jYX",
      "number": 2657,
      "title": "Request: Review auto-generated MCP permission manifest for Knowledge_Graph_Memory",
      "user": {
        "login": "buehler",
        "id": 1067213,
        "node_id": "MDQ6VXNlcjEwNjcyMTM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1067213?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/buehler",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-09-01T08:54:11Z",
      "updated_at": "2025-09-01T08:54:11Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Dear Authors / Maintainers,\n\nWe are researchers from the University of St. Gallen studying how to make Model Context Protocol (MCP) servers safer to run via a sandboxed permission system. As part of our study, we auto generated a permission manifest for your MCP server and would love your feedback on whether it is correct and complete.\n\nThe MCP server in question is: Knowledge_Graph_Memory\n\nPlease review the manifest below and let us know:\n\n* Are the permissions and their scopes correct?\n* Are any permissions missing?\n* Do any permissions need to be runtime-scoped (e.g., a specific project directory) rather than global?\n\n**Proposed manifest (please review)**\n\n```json\n{\n  \"description\": \"Knowledge Graph Memory MCP server: a local Node.js server providing a persistent knowledge graph (entities, relations, observations) stored in a newline-delimited JSON file (memory.json by default), exposing CRUD and query tools over stdio; storage path configurable via MEMORY_FILE_PATH.\",\n  \"permissions\": [\n    \"mcp.ac.filesystem.read\",\n    \"mcp.ac.filesystem.write\",\n    \"mcp.ac.system.env.read\"\n  ]\n}\n```\n\nPlease let us know if you have any questions and/or remarks.\n\nIn case you want to see the (current) full permission system:\n<details><summary>MCP Permission System</summary>\n<p>\n\n| Permission                         | Description                     | Notes                                      |\n| ---------------------------------- | ------------------------------- | ------------------------------------------ |\n| `mcp.ac.filesystem.read`           | Read files/directories          |                                            |\n| `mcp.ac.filesystem.write`          | Write/create files              |                                            |\n| `mcp.ac.filesystem.delete`         | Delete files or directories     |                                            |\n| `mcp.ac.system.env.read`           | Read environment variables      | e.g., `API_KEY`, `PATH`                    |\n| `mcp.ac.system.env.write`          | Set environment variables       | setting the env variables                  |\n| `mcp.ac.system.exec`               | Execute OS commands             | CLI runners, shells                        |\n| `mcp.ac.system.process`            | List or kill processes          |                                            |\n| `mcp.ac.network.client`            | General Outgoing network access |                                            |\n| `mcp.ac.network.server`            | Accept incoming connections     |                                            |\n| `mcp.ac.network.bluetooth`         | Use Bluetooth connections       | macOS TCC-protected                        |\n| `mcp.ac.peripheral.camera`         | Capture images/video            | macOS TCC-controlled                       |\n| `mcp.ac.peripheral.microphone`     | Record audio                    | TCC-protected                              |\n| `mcp.ac.peripheral.speaker`        | Play audio                      |                                            |\n| `mcp.ac.peripheral.screen.capture` | Screen capture                  | Requires consent (macOS: Screen Recording) |\n| `mcp.ac.location`                  | Access location data            | From Wi-Fi, IP, GNSS                       |\n| `mcp.ac.notifications.post`        | Show system notifications       | macOS/Windows                              |\n| `mcp.ac.clipboard.read` / `.write` | Read/write clipboard            | Copy-paste support                         |\n\n</p>\n</details>\n\nThank you very much for your time and your efforts in making MCP more secure.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2657/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2656",
      "id": 3371840164,
      "node_id": "I_kwDONRaG_87I-jKk",
      "number": 2656,
      "title": "Request: Review auto-generated MCP permission manifest for Filesystem",
      "user": {
        "login": "buehler",
        "id": 1067213,
        "node_id": "MDQ6VXNlcjEwNjcyMTM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1067213?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/buehler",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-09-01T08:53:59Z",
      "updated_at": "2025-09-01T08:53:59Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Dear Authors / Maintainers,\n\nWe are researchers from the University of St. Gallen studying how to make Model Context Protocol (MCP) servers safer to run via a sandboxed permission system. As part of our study, we auto generated a permission manifest for your MCP server and would love your feedback on whether it is correct and complete.\n\nThe MCP server in question is: Filesystem\n\nPlease review the manifest below and let us know:\n\n* Are the permissions and their scopes correct?\n* Are any permissions missing?\n* Do any permissions need to be runtime-scoped (e.g., a specific project directory) rather than global?\n\n**Proposed manifest (please review)**\n\n```json\n{\n  \"description\": \"Secure Filesystem MCP server providing controlled read/write/list/search/move/edit and metadata operations limited to configured allowed directories (via CLI or MCP Roots), with symlink resolution, path normalization, and atomic writes/renames to prevent traversal and symlink/race attacks.\",\n  \"permissions\": [\n    \"mcp.ac.filesystem.read\",\n    \"mcp.ac.filesystem.write\",\n    \"mcp.ac.filesystem.delete\"\n  ]\n}\n```\n\nPlease let us know if you have any questions and/or remarks.\n\nIn case you want to see the (current) full permission system:\n<details><summary>MCP Permission System</summary>\n<p>\n\n| Permission                         | Description                     | Notes                                      |\n| ---------------------------------- | ------------------------------- | ------------------------------------------ |\n| `mcp.ac.filesystem.read`           | Read files/directories          |                                            |\n| `mcp.ac.filesystem.write`          | Write/create files              |                                            |\n| `mcp.ac.filesystem.delete`         | Delete files or directories     |                                            |\n| `mcp.ac.system.env.read`           | Read environment variables      | e.g., `API_KEY`, `PATH`                    |\n| `mcp.ac.system.env.write`          | Set environment variables       | setting the env variables                  |\n| `mcp.ac.system.exec`               | Execute OS commands             | CLI runners, shells                        |\n| `mcp.ac.system.process`            | List or kill processes          |                                            |\n| `mcp.ac.network.client`            | General Outgoing network access |                                            |\n| `mcp.ac.network.server`            | Accept incoming connections     |                                            |\n| `mcp.ac.network.bluetooth`         | Use Bluetooth connections       | macOS TCC-protected                        |\n| `mcp.ac.peripheral.camera`         | Capture images/video            | macOS TCC-controlled                       |\n| `mcp.ac.peripheral.microphone`     | Record audio                    | TCC-protected                              |\n| `mcp.ac.peripheral.speaker`        | Play audio                      |                                            |\n| `mcp.ac.peripheral.screen.capture` | Screen capture                  | Requires consent (macOS: Screen Recording) |\n| `mcp.ac.location`                  | Access location data            | From Wi-Fi, IP, GNSS                       |\n| `mcp.ac.notifications.post`        | Show system notifications       | macOS/Windows                              |\n| `mcp.ac.clipboard.read` / `.write` | Read/write clipboard            | Copy-paste support                         |\n\n</p>\n</details>\n\nThank you very much for your time and your efforts in making MCP more secure.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2656/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2655",
      "id": 3371840043,
      "node_id": "I_kwDONRaG_87I-jIr",
      "number": 2655,
      "title": "Request: Review auto-generated MCP permission manifest for Fetch",
      "user": {
        "login": "buehler",
        "id": 1067213,
        "node_id": "MDQ6VXNlcjEwNjcyMTM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1067213?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/buehler",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-09-01T08:53:56Z",
      "updated_at": "2025-09-01T08:53:56Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Dear Authors / Maintainers,\n\nWe are researchers from the University of St. Gallen studying how to make Model Context Protocol (MCP) servers safer to run via a sandboxed permission system. As part of our study, we auto generated a permission manifest for your MCP server and would love your feedback on whether it is correct and complete.\n\nThe MCP server in question is: Fetch\n\nPlease review the manifest below and let us know:\n\n* Are the permissions and their scopes correct?\n* Are any permissions missing?\n* Do any permissions need to be runtime-scoped (e.g., a specific project directory) rather than global?\n\n**Proposed manifest (please review)**\n\n```json\n{\n  \"description\": \"Fetch MCP server: fetches arbitrary HTTP(S) URLs, retrieves page content (optionally converting HTML to Markdown), consults robots.txt for autonomous fetch policy, and supports custom User-Agent, proxy usage, and chunked reads via start_index/max_length. Exposes a fetch tool and prompt for clients to obtain web content.\",\n  \"permissions\": [\n    \"mcp.ac.network.client\"\n  ]\n}\n```\n\nPlease let us know if you have any questions and/or remarks.\n\nIn case you want to see the (current) full permission system:\n<details><summary>MCP Permission System</summary>\n<p>\n\n| Permission                         | Description                     | Notes                                      |\n| ---------------------------------- | ------------------------------- | ------------------------------------------ |\n| `mcp.ac.filesystem.read`           | Read files/directories          |                                            |\n| `mcp.ac.filesystem.write`          | Write/create files              |                                            |\n| `mcp.ac.filesystem.delete`         | Delete files or directories     |                                            |\n| `mcp.ac.system.env.read`           | Read environment variables      | e.g., `API_KEY`, `PATH`                    |\n| `mcp.ac.system.env.write`          | Set environment variables       | setting the env variables                  |\n| `mcp.ac.system.exec`               | Execute OS commands             | CLI runners, shells                        |\n| `mcp.ac.system.process`            | List or kill processes          |                                            |\n| `mcp.ac.network.client`            | General Outgoing network access |                                            |\n| `mcp.ac.network.server`            | Accept incoming connections     |                                            |\n| `mcp.ac.network.bluetooth`         | Use Bluetooth connections       | macOS TCC-protected                        |\n| `mcp.ac.peripheral.camera`         | Capture images/video            | macOS TCC-controlled                       |\n| `mcp.ac.peripheral.microphone`     | Record audio                    | TCC-protected                              |\n| `mcp.ac.peripheral.speaker`        | Play audio                      |                                            |\n| `mcp.ac.peripheral.screen.capture` | Screen capture                  | Requires consent (macOS: Screen Recording) |\n| `mcp.ac.location`                  | Access location data            | From Wi-Fi, IP, GNSS                       |\n| `mcp.ac.notifications.post`        | Show system notifications       | macOS/Windows                              |\n| `mcp.ac.clipboard.read` / `.write` | Read/write clipboard            | Copy-paste support                         |\n\n</p>\n</details>\n\nThank you very much for your time and your efforts in making MCP more secure.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2655/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2654",
      "id": 3371839633,
      "node_id": "I_kwDONRaG_87I-jCR",
      "number": 2654,
      "title": "Request: Review auto-generated MCP permission manifest for Demo__Everything_",
      "user": {
        "login": "buehler",
        "id": 1067213,
        "node_id": "MDQ6VXNlcjEwNjcyMTM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1067213?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/buehler",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-09-01T08:53:47Z",
      "updated_at": "2025-09-01T08:53:47Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Dear Authors / Maintainers,\n\nWe are researchers from the University of St. Gallen studying how to make Model Context Protocol (MCP) servers safer to run via a sandboxed permission system. As part of our study, we auto generated a permission manifest for your MCP server and would love your feedback on whether it is correct and complete.\n\nThe MCP server in question is: Demo__Everything_\n\nPlease review the manifest below and let us know:\n\n* Are the permissions and their scopes correct?\n* Are any permissions missing?\n* Do any permissions need to be runtime-scoped (e.g., a specific project directory) rather than global?\n\n**Proposed manifest (please review)**\n\n```json\n{\n  \"description\": \"Everything MCP demo server exercising most of the MCP protocol (prompts, tools, resources, sampling/elicitation, roots, subscriptions, progress) with stdio, SSE, and Streamable HTTP transports. It reads a bundled instructions.md at startup and, when using network transports, runs an Express HTTP server (default port 3001). It also exposes tools that read environment variables for debugging.\",\n  \"permissions\": [\n    \"mcp.ac.filesystem.read\",\n    \"mcp.ac.system.env.read\",\n    \"mcp.ac.network.server\"\n  ]\n}\n```\n\nPlease let us know if you have any questions and/or remarks.\n\nIn case you want to see the (current) full permission system:\n<details><summary>MCP Permission System</summary>\n<p>\n\n| Permission                         | Description                     | Notes                                      |\n| ---------------------------------- | ------------------------------- | ------------------------------------------ |\n| `mcp.ac.filesystem.read`           | Read files/directories          |                                            |\n| `mcp.ac.filesystem.write`          | Write/create files              |                                            |\n| `mcp.ac.filesystem.delete`         | Delete files or directories     |                                            |\n| `mcp.ac.system.env.read`           | Read environment variables      | e.g., `API_KEY`, `PATH`                    |\n| `mcp.ac.system.env.write`          | Set environment variables       | setting the env variables                  |\n| `mcp.ac.system.exec`               | Execute OS commands             | CLI runners, shells                        |\n| `mcp.ac.system.process`            | List or kill processes          |                                            |\n| `mcp.ac.network.client`            | General Outgoing network access |                                            |\n| `mcp.ac.network.server`            | Accept incoming connections     |                                            |\n| `mcp.ac.network.bluetooth`         | Use Bluetooth connections       | macOS TCC-protected                        |\n| `mcp.ac.peripheral.camera`         | Capture images/video            | macOS TCC-controlled                       |\n| `mcp.ac.peripheral.microphone`     | Record audio                    | TCC-protected                              |\n| `mcp.ac.peripheral.speaker`        | Play audio                      |                                            |\n| `mcp.ac.peripheral.screen.capture` | Screen capture                  | Requires consent (macOS: Screen Recording) |\n| `mcp.ac.location`                  | Access location data            | From Wi-Fi, IP, GNSS                       |\n| `mcp.ac.notifications.post`        | Show system notifications       | macOS/Windows                              |\n| `mcp.ac.clipboard.read` / `.write` | Read/write clipboard            | Copy-paste support                         |\n\n</p>\n</details>\n\nThank you very much for your time and your efforts in making MCP more secure.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2654/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2621",
      "id": 3355498542,
      "node_id": "I_kwDONRaG_87IANgu",
      "number": 2621,
      "title": "'everything' server notification/progress does not seem to work correctly",
      "user": {
        "login": "TheGlenn88",
        "id": 5333026,
        "node_id": "MDQ6VXNlcjUzMzMwMjY=",
        "avatar_url": "https://avatars.githubusercontent.com/u/5333026?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/TheGlenn88",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359492806,
          "node_id": "LA_kwDONRaG_88AAAAB8kO8xg",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-everything",
          "name": "server-everything",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Everything MCP server - src/everything"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-08-26T12:44:13Z",
      "updated_at": "2025-08-27T12:12:37Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "When using the 'everything' server, testing the longRunningOperation should send progress notifications, I can see them in the EventStream in the Chrome network tab, but he MCP Inspector doesn't react to them, the tool ends with the final response.\n\nI've been trying to implement progress notifications in an MCP server, but I can't get it to work, the intention was to get Claude to react to progress notifications, but I don't even think Claude implements progress notifications because it doesn't send a progressToken. After digging into it and finding the `everything` server which implements progress, I cannot see what the intention of this functionality is. Having it only available from custom MCP servers to custom MCP clients doesn't seem all that useful, but I also realise all of this is in the very early stages.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Start everything server `npx @modelcontextprotocol/server-everything streamableHttp`\n2. Start MCP Inspector `npx @modelcontextprotocol/inspector`\n3. Connect inspector to http://localhost:3001/mcp\n4. Start the longRunningOperation tool\n\n**Expected behavior**\nI would at least expect the MCP inspector to show that the progress notifications are working. There is a window in the inspector for `Server Notifications` which doesn't show anything, I would expect them to appear here.\n\n**Logs**\nn/a\n\n<img width=\"2270\" height=\"1160\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/c5af34cf-b95b-4730-a4f2-7dacdf9337f4\" />",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2621/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2608",
      "id": 3348516660,
      "node_id": "I_kwDONRaG_87Hlk80",
      "number": 2608,
      "title": "Configure Claude Code Github Action to use established PR template",
      "user": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "domdomegg",
        "id": 4953590,
        "node_id": "MDQ6VXNlcjQ5NTM1OTA=",
        "avatar_url": "https://avatars.githubusercontent.com/u/4953590?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/domdomegg",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "domdomegg",
          "id": 4953590,
          "node_id": "MDQ6VXNlcjQ5NTM1OTA=",
          "avatar_url": "https://avatars.githubusercontent.com/u/4953590?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/domdomegg",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 2,
      "created_at": "2025-08-23T17:31:05Z",
      "updated_at": "2025-08-25T17:43:25Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nWhen Claude creates a PR through the Claude Code Github Action, the description doesn't include the standard sections from the PR template.\n\n**Describe the solution you'd like**\nCan we configure Claude Code Github Action to use established PR template?\n\n**Describe alternatives you've considered**\nLeaving as is: doesn't include important details like 'how was this tested' and 'is this a breaking change?'\n\n**Additional context**\nExample of a PR co-authored by Claude which doesn't follow the template: https://github.com/modelcontextprotocol/servers/pull/2606\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2608/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2579",
      "id": 3334166219,
      "node_id": "I_kwDONRaG_87Gu1bL",
      "number": 2579,
      "title": "Bug Report and Resolution: `mcp-server-memory` Failures due to Race Condition and Environment Misconfiguration",
      "user": {
        "login": "Manamama-Gemini-Cloud-AI-01",
        "id": 222482969,
        "node_id": "U_kgDODULSGQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/222482969?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Manamama-Gemini-Cloud-AI-01",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359496976,
          "node_id": "LA_kwDONRaG_88AAAAB8kPNEA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-memory",
          "name": "server-memory",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Memory MCP server - src/memory"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2025-08-19T12:18:33Z",
      "updated_at": "2025-08-24T03:27:16Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Summary\n\nThis report details the investigation and resolution of a critical bug that rendered the `mcp-server-memory` toolset non-functional, causing \"Unexpected non-whitespace character after JSON\" errors. The root cause was a combination of a race condition in the server's file-writing logic and an environment misconfiguration that prevented the execution of the corrected code. The issue was ultimately resolved after the user manually deleted the corrupted `memory.json` file, allowing the fixed server environment to take over.\n\n### Root Cause Analysis\n\nThe investigation revealed a multi-faceted root cause:\n\n1.  **Code Bug:** The server's code lacked a file lock on the `memory.json` file. This created a **race condition** where concurrent writes would corrupt the file. This was demonstrated by the provided `test_race_condition.py` script.\n2.  **Data Corruption:** The corrupted `memory.json` file was the direct cause of the JSON parsing errors. The server would attempt to read the malformed file and fail.\n3.  **Environment Issue:** The primary blocker was an environment misconfiguration. The system was using `npx` to run an old, buggy version of the server from the internet, instead of the locally compiled and fixed version that included the race condition fix.\n\n### Evidence of the Bug (Race Condition)\n\nThe following Python script simulates the original buggy logic. It starts two processes that attempt to write to the same JSON file concurrently without a lock. This can result in a corrupted file, demonstrating the race condition.\n\n<details>\n<summary>Bug Simulation Code</summary>\n\n```python\nimport json\nimport os\nfrom multiprocessing import Process, Manager\n\n# The file to be shared and potentially corrupted\nTEST_FILE = 'test_memory.json'\n\n# This function simulates the buggy load/save logic from the TypeScript code\ndef buggy_operation(process_id, new_entry, shared_dict):\n    \"\"\"Simulates a single process reading, updating, and writing the file.\"\"\"\n    try:\n        # 1. Load the graph (read from file)\n        try:\n            with open(TEST_FILE, 'r') as f:\n                data = f.read()\n                # In a race condition, this data could be incomplete\n                graph = json.loads(data) if data else {'entries': []}\n        except (FileNotFoundError, json.JSONDecodeError):\n            graph = {'entries': []}\n\n        # 2. Add the new entry\n        graph['entries'].append(new_entry)\n        \n        # 3. Save the graph (write back to file)\n        with open(TEST_FILE, 'w') as f:\n            # This is the critical section where the race condition happens.\n            # One process can overwrite the other's changes.\n            json.dump(graph, f)\n        \n        shared_dict[process_id] = 'Success'\n\n    except Exception as e:\n        # If a json.JSONDecodeError happens, it means we read a corrupted file\n        shared_dict[process_id] = f'Error: {type(e).__name__} - {e}'\n\ndef main():\n    \"\"\"Run two buggy operations in parallel to try and trigger the race condition.\"\"\"\n    # Clean up previous test file if it exists\n    if os.path.exists(TEST_FILE):\n        os.remove(TEST_FILE)\n\n    with Manager() as manager:\n        shared_dict = manager.dict()\n        \n        # Create two processes that will run the buggy operation concurrently\n        p1 = Process(target=buggy_operation, args=(1, {'id': 1, 'data': 'from_process_1'}, shared_dict))\n        p2 = Process(target=buggy_operation, args=(2, {'id': 2, 'data': 'from_process_2'}, shared_dict))\n\n        p1.start()\n        p2.start()\n\n        p1.join()\n        p2.join()\n\n        print(\"--- Process Results ---\")\n        for pid, result in shared_dict.items():\n            print(f\"Process {pid}: {result}\")\n\n        print(\"\\n--- Final File Content ---\")\n        try:\n            with open(TEST_FILE, 'r') as f:\n                content = f.read()\n                print(content)\n                # Final check: is the file valid JSON?\n                final_data = json.loads(content)\n                print(\"\\n--- Final Parsed Data ---\")\n                print(final_data)\n                if len(final_data.get('entries', [])) != 2:\n                    print(\"\\n*** BUG CONFIRMED: Data was lost. Expected 2 entries. ***\")\n                else:\n                    print(\"\\n*** TEST PASSED (Race condition not triggered this time) ***\")\n\n        except (FileNotFoundError, json.JSONDecodeError) as e:\n            print(f\"*** BUG CONFIRMED: File is corrupted or does not exist. ***\")\n            print(f\"Error: {e}\")\n        finally:\n             # Clean up the test file\n            if os.path.exists(TEST_FILE):\n                os.remove(TEST_FILE)\n\n\nif __name__ == '__main__':\n    main()\n```\n\n</details>\n\n### The Fix (Locking Mechanism)\n\nThe corrected code uses a file-based lock to ensure that only one process can write to the `memory.json` file at a time, preventing the race condition. The following script demonstrates this fixed logic.\n\n<details>\n<summary>Fix Verification Code</summary>\n\n```python\nimport os\nimport json\nfrom multiprocessing import Process, Manager, Lock\n\nclass FixedKnowledgeGraphManager:\n    def __init__(self, memory_file_path, lock):\n        self.memory_file_path = memory_file_path\n        self.lock = lock\n\n    def _load_graph_safe(self):\n        \"\"\"Safely loads the graph from the JSON file.\"\"\"\n        try:\n            with open(self.memory_file_path, 'r') as f:\n                data = f.read()\n                return json.loads(data) if data else {'entities': [], 'relations': []}\n        except FileNotFoundError:\n            return {'entities': [], 'relations': []}\n\n    def _save_graph_safe(self, graph):\n        \"\"\"Safely saves the graph to the JSON file.\"\"\"\n        with open(self.memory_file_path, 'w') as f:\n            json.dump(graph, f, indent=2)\n\n    def _execute_with_lock(self, operation, *args, **kwargs):\n        \"\"\"Executes a given file operation with a lock.\"\"\"\n        with self.lock:\n            graph = self._load_graph_safe()\n            result, updated_graph = operation(graph, *args, **kwargs)\n            self._save_graph_safe(updated_graph)\n            return result\n\n    def create_entities(self, graph, entities):\n        new_entities = [e for e in entities if e['name'] not in {ex['name'] for ex in graph['entities']}]\n        graph['entities'].extend(new_entities)\n        return new_entities, graph\n\n    def create_relations(self, graph, relations):\n        # Simple add for testing; a real implementation would check for duplicates\n        graph['relations'].extend(relations)\n        return relations, graph\n\n    # Wrapper methods that will be called by the test processes\n    def safe_create_entities(self, entities):\n        return self._execute_with_lock(self.create_entities, entities)\n\n    def safe_create_relations(self, relations):\n        return self._execute_with_lock(self.create_relations, relations)\n\n\nTEST_FILE = 'test_memory_fixed.json'\n\ndef safe_operation(process_id, entities_to_add, relations_to_add, shared_dict, lock):\n    \"\"\"Performs concurrent operations using the fixed manager.\"\"\"\n    try:\n        manager = FixedKnowledgeGraphManager(TEST_FILE, lock)\n        manager.safe_create_entities(entities_to_add)\n        manager.safe_create_relations(relations_to_add)\n        shared_dict[process_id] = 'Success'\n    except Exception as e:\n        shared_dict[process_id] = f'Error: {type(e).__name__} - {e}'\n\ndef main():\n    \"\"\"Run two safe operations in parallel to verify the fix.\"\"\"\n    if os.path.exists(TEST_FILE):\n        os.remove(TEST_FILE)\n\n    with Manager() as process_manager:\n        shared_dict = process_manager.dict()\n        lock = Lock()\n\n        # Define data for two processes\n        data_p1 = {\n            'entities': [{'name': 'Human', 'entityType': 'Actor'}],\n            'relations': [{'from': 'Human', 'to': 'Start_Bank', 'relationType': 'is_at'}]\n        }\n        data_p2 = {\n            'entities': [{'name': 'Goat', 'entityType': 'Actor'}],\n            'relations': [{'from': 'Goat', 'to': 'Start_Bank', 'relationType': 'is_at'}]\n        }\n\n        p1 = Process(target=safe_operation, args=(1, data_p1['entities'], data_p1['relations'], shared_dict, lock))\n        p2 = Process(target=safe_operation, args=(2, data_p2['entities'], data_p2['relations'], shared_dict, lock))\n\n        p1.start()\n        p2.start()\n\n        p1.join()\n        p2.join()\n\n        print(\"--- Process Results ---\")\n        for pid, result in shared_dict.items():\n            print(f\"Process {pid}: {result}\")\n\n        print(\"\\n--- Final File Content ---\")\n        # We need a final read outside the lock to verify the final state\n        try:\n            with open(TEST_FILE, 'r') as f:\n                final_graph = json.load(f)\n                print(json.dumps(final_graph, indent=2))\n                num_entities = len(final_graph.get('entities', []))\n                num_relations = len(final_graph.get('relations', []))\n                print(f\"\\nFound {num_entities} entities and {num_relations} relations.\")\n                if num_entities == 2 and num_relations == 2:\n                    print(\"\\n*** BUG FIXED: All data was written successfully. ***\")\n                else:\n                    print(f\"\\n*** TEST FAILED: Data was lost. Expected 2 entities and 2 relations. ***\")\n        except (FileNotFoundError, json.JSONDecodeError) as e:\n            print(f\"Error reading final file: {e}\")\n        finally:\n            if os.path.exists(TEST_FILE):\n                os.remove(TEST_FILE)\n\nif __name__ == '__main__':\n    main()\n```\n\n</details>\n\n### Relation to Previously Reported Bugs\n\nThis issue is consistent with previously reported bugs in the `modelcontextprotocol/servers` repository, suggesting a systemic problem that has now been addressed:\n\n*   **Direct Confirmation:** This bug is a direct parallel to **Issue #2412**, which reported the exact same \"Unexpected non-whitespace character\" error, although for the filesystem server. This confirms the problem was not isolated to a single server.\n*   **Related Symptom:** The server timeouts and unexpected exits reported in **Issue #719** are also likely symptoms of the same underlying server instability caused by this bug.\n\n### Conclusion\n\nThe \"Unexpected non-whitespace character\" bug is **resolved**. The resolution required both a **code fix** (implementing a file lock to prevent the race condition) and an **environment fix** (ensuring the correct, locally-built server is executed). The user's manual deletion of the corrupted `memory.json` file was the final step that enabled the corrected environment to function properly.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2579/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3286
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2519",
      "id": 3307424018,
      "node_id": "I_kwDONRaG_87FI0kS",
      "number": 2519,
      "title": "Window mcp instalation repo path needs double slashes",
      "user": {
        "login": "rodev018",
        "id": 219142821,
        "node_id": "U_kgDODQ_apQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/219142821?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/rodev018",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359493992,
          "node_id": "LA_kwDONRaG_88AAAAB8kPBaA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-git",
          "name": "server-git",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Git MCP server - src/git"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2025-08-10T10:15:13Z",
      "updated_at": "2025-08-24T03:11:11Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Describe the bug\nWhen configuring mcpServers on Windows, paths containing backslashes are not handled correctly if not escaped in JSON. Using a path like c:\\temp\\bvb causes MCP error -32000: Connection closed because \\t is interpreted as a tab character.\n\nTo Reproduce\nSteps to reproduce the behavior:\n\nCreate an MCP configuration on Windows similar to:\n\njson\nCopy\nEdit\n{\n  \"mcpServers\": {\n    \"git\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"mcp-server-git\",\n        \"--repository\",\n        \"c:\\temp\\project\"\n      ]\n    }\n  }\n}\nStart KiloCode in VS Code.\n\nObserve that the MCP connection fails with error -32000: Connection closed.\n\nExpected behavior\nThe MCP server should connect successfully when given a valid Windows path, even if the path uses standard backslashes (as is default in Windows).\n\nLogs\n\nnginx\nCopy\nEdit\nMCP error -32000: Connection closed\nAdditional context\nEscaping the Windows path (e.g., \"C:\\\\temp\\\\project\") fixes the issue. This may need better documentation, automatic escaping, or clearer error messaging to prevent confusion for Windows users.\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2519/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2505",
      "id": 3301310919,
      "node_id": "I_kwDONRaG_87ExgHH",
      "number": 2505,
      "title": "mcp/filesystem terminates unexpectedly",
      "user": {
        "login": "chrissound",
        "id": 1499652,
        "node_id": "MDQ6VXNlcjE0OTk2NTI=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1499652?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/chrissound",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 6,
      "created_at": "2025-08-07T17:21:22Z",
      "updated_at": "2025-08-27T12:58:55Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "The process terminates unexpectedly? I'm trying to run this standalone, I'll use the API directly.\n\n```\nroot@mcp-test:~/servers# docker run --rm -v $PWD:/projects mcp/filesystem /projects\nSecure MCP Filesystem Server running on stdio\nroot@mcp-test:~/servers# echo $?\n0\n```\n\n**To Reproduce**\n```\ngit clone git@github.com:modelcontextprotocol/servers.git\ncd servers\ndocker build -t mcp/filesystem -f src/filesystem/Dockerfile .\nroot@mcp-test:~/servers# docker run --rm -v $PWD:/projects mcp/filesystem /projects\nSecure MCP Filesystem Server running on stdio\n```\n\nI expect it to instead be continually running.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2505/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2483",
      "id": 3291856336,
      "node_id": "I_kwDONRaG_87ENb3Q",
      "number": 2483,
      "title": "Enhancement Request: Graceful handling of temporarily unavailable network paths",
      "user": {
        "login": "F1rlefanz",
        "id": 158139941,
        "node_id": "U_kgDOCW0GJQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/158139941?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/F1rlefanz",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-08-05T07:03:33Z",
      "updated_at": "2025-08-22T18:45:26Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# Enhancement Request: Graceful handling of temporarily unavailable network paths\n\n## Summary\nThe Filesystem MCP Server currently crashes on startup if any configured path is temporarily unavailable (e.g., network drives, NAS systems). This prevents using the server in environments where some paths may be intermittently available.\n\n## Current Behavior\n- Server performs `fs.stat()` on all configured paths during startup\n- If ANY path is unreachable, server terminates with `process.exit(1)`\n- This makes the entire filesystem server unusable when network paths are offline\n\n## Expected Behavior\nThe server should:\n1. **Start successfully** even if some network paths are temporarily unavailable\n2. **Log warnings** for unreachable paths instead of crashing\n3. **Gracefully handle operations** on unavailable paths at runtime with appropriate error messages\n4. **Optionally retry** path validation periodically or on-demand\n\n## Use Case\nMany users have configurations mixing local paths with network storage (NAS, SMB shares, etc.) that may not be available 24/7:\n- Home NAS systems that power down overnight\n- VPN-connected network drives\n- Intermittent cloud storage mounts\n\n## Reproduction\n```json\n{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-filesystem\",\n        \"C:\\\\Users\\\\username\\\\Documents\",\n        \"\\\\\\\\nas.local\\\\shared\\\\documents\"  // <- NAS is offline\n      ]\n    }\n  }\n}\n```\n\n**Current result:** Server fails to start completely\n**Expected result:** Server starts, local paths work, NAS operations fail gracefully\n\n## Proposed Solutions\n\n### Option 1: Command-line flag (recommended)\n```bash\nnpx @modelcontextprotocol/server-filesystem --ignore-missing-paths C:\\local \\\\nas\\share\n```\n\n### Option 2: Path-specific configuration\n```json\n{\n  \"required\": [\"C:\\\\Users\\\\username\\\\Documents\"],\n  \"optional\": [\"\\\\\\\\nas.local\\\\shared\\\\documents\"]\n}\n```\n\n### Option 3: Runtime validation only\nSkip startup validation entirely, handle path availability at operation time.\n\n## Impact\nThis enhancement would:\n- ✅ Improve reliability in mixed local/network environments\n- ✅ Reduce configuration management complexity\n- ✅ Allow for more flexible deployment scenarios\n- ✅ Maintain backward compatibility\n\n## Environment\n- OS: Windows 11\n- Package: @modelcontextprotocol/server-filesystem (latest)\n- Client: Claude Desktop\n\n## Related Issues\nSimilar issues suggest this is a common pain point:\n- #1838 (path validation issues on Windows)\n- #267 (server connection failures)\n- #75 (Windows filesystem configuration issues)\n\n## Additional Context\nThe current \"fail-fast\" approach makes sense for critical paths but is too rigid for optional network resources. A more resilient approach would significantly improve the user experience for mixed-environment setups.\n\n## Logs\nFrom `C:\\Users\\Christoph\\AppData\\Roaming\\Claude\\logs\\mcp-server-filesystem.log`:\n```\nError accessing directory \\\\ds418play\\Daten\\Gesundheits- und Krankenpfleger\\Arbeitsanweisungen: Error: UNKNOWN: unknown error, stat '\\\\ds418play\\Daten\\Gesundheits- und Krankenpfleger\\Arbeitsanweisungen'\n    at async Object.stat (node:internal/fs/promises:1037:18)\n    at async file:///C:/Users/Christoph/AppData/Local/npm-cache/_npx/a3241bba59c344f5/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js:53:23\n    at async Promise.all (index 5)\n    at async file:///C:/Users/Christoph/AppData/Local/npm-cache/_npx/a3241bba59c344f5/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js:51:1 {\n  errno: -4094,\n  code: 'UNKNOWN',\n  syscall: 'stat',\n  path: '\\\\\\\\ds418play\\\\Daten\\\\Gesundheits- und Krankenpfleger\\\\Arbeitsanweisungen'\n}\n```",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2483/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2472",
      "id": 3286040953,
      "node_id": "I_kwDONRaG_87D3QF5",
      "number": 2472,
      "title": "Include title of fetched page in content returned by the fetch server",
      "user": {
        "login": "gebalassa",
        "id": 11603889,
        "node_id": "MDQ6VXNlcjExNjAzODg5",
        "avatar_url": "https://avatars.githubusercontent.com/u/11603889?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/gebalassa",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8359493310,
          "node_id": "LA_kwDONRaG_88AAAAB8kO-vg",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-fetch",
          "name": "server-fetch",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Fetch MCP server - src/fetch"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2025-08-02T15:50:34Z",
      "updated_at": "2025-08-27T12:34:08Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nFetching the URL `https://pandas.pydata.org/docs/dev/whatsnew/v2.1.0.html` does not include the the title line \"What’s new in 2.1.0 (Aug 30, 2023)\".\n\n**To Reproduce**\nRun the `fetch` tool with the `https://pandas.pydata.org/docs/dev/whatsnew/v2.1.0.html` URL.\n\n**Expected behavior**\n\"What’s new in 2.1.0 (Aug 30, 2023)\" title line should be included, but it isn't.\n\n**Logs**\nN/A\n\n**Additional context**\nThis was done as part of an Outlier project which implemented the tool. I have no access to their implementation of the MCP server but I don't think its a server configuration error.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2472/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2421",
      "id": 3261005986,
      "node_id": "I_kwDONRaG_87CXwCi",
      "number": 2421,
      "title": "Can't start sequential-thinking MCP with cursor",
      "user": {
        "login": "jmoraxix",
        "id": 5872179,
        "node_id": "MDQ6VXNlcjU4NzIxNzk=",
        "avatar_url": "https://avatars.githubusercontent.com/u/5872179?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jmoraxix",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8461835294,
          "node_id": "LA_kwDONRaG_88AAAAB-F1cHg",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/waiting%20for%20submitter",
          "name": "waiting for submitter",
          "color": "C5DEF5",
          "default": false,
          "description": "Waiting for the submitter to provide more info"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-07-24T19:29:52Z",
      "updated_at": "2025-11-13T17:06:09Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nA clear and concise description of what the bug is.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Install MCP on cursor mcp.json\n```json\n\"sequential-thinking\": {\n        \"command\": \"npx\",\n        \"args\": [\n          \"-y\",\n          \"@modelcontextprotocol/server-sequential-thinking\"\n        ]\n      }\n```\n\nCursor logs:\n```\n2025-07-24 13:22:30.407 [info] user-sequential-thinking: Starting new stdio process with command: npx -y @modelcontextprotocol/server-sequential-thinking\n2025-07-24 13:22:31.779 [error] user-sequential-thinking: node:internal/modules/esm/resolve:274\n    throw new ERR_MODULE_NOT_FOUND(\n          ^\n\nError [ERR_MODULE_NOT_FOUND]: Cannot find module '/Users/USER/.npm/_npx/de2bd410102f5eda/node_modules/zod/index.js' imported from /Users/USER/.npm/_npx/de2bd410102f5eda/node_modules/@modelcontextprotocol/sdk/dist/types.js\n    at finalizeResolution (node:internal/modules/esm/resolve:274:11)\n    at moduleResolve (node:internal/modules/esm/resolve:859:10)\n    at defaultResolve (node:internal/modules/esm/resolve:983:11)\n    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:801:12)\n    at #cachedDefaultResolve (node:internal/modules/esm/loader:725:25)\n    at ModuleLoader.resolve (node:internal/modules/esm/loader:708:38)\n    at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:309:38)\n    at #link (node:internal/modules/esm/module_job:208:49) {\n  code: 'ERR_MODULE_NOT_FOUND',\n  url: 'file:///Users/USER/.npm/_npx/de2bd410102f5eda/node_modules/zod/index.js'\n}\n\nNode.js v24.4.1\n\n2025-07-24 13:22:31.785 [info] user-sequential-thinking: Client closed for command\n```\n\nWhen checking the missing files, there's only `index.d.ts` file in the directory.\n\n$ ls /Users/USER/.npm/_npx/de2bd410102f5eda/node_modules/zod/        \nindex.d.ts   package.json README.md    src          v3           v4\n\n$ npm list @modelcontextprotocol/sdk                                   \n├── @modelcontextprotocol/sdk@1.17.0\n└─┬ @modelcontextprotocol/server-sequential-thinking@2025.7.1\n       └── @modelcontextprotocol/sdk@0.5.0",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2421/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2416",
      "id": 3258691937,
      "node_id": "I_kwDONRaG_87CO7Fh",
      "number": 2416,
      "title": "Filesystem MCP: create_directory fails with relative paths but works with absolute paths - Kiro AI IDE",
      "user": {
        "login": "dishankgupta",
        "id": 217602322,
        "node_id": "U_kgDODPhZEg",
        "avatar_url": "https://avatars.githubusercontent.com/u/217602322?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/dishankgupta",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-07-24T06:27:16Z",
      "updated_at": "2025-07-30T12:32:05Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# Bug: create_directory fails with relative paths but works with absolute paths\n\n## Description\nThe `create_directory` function in the filesystem MCP server only works when provided with absolute paths. When using relative paths, it incorrectly throws an \"Access denied\" error even though the path is within allowed directories.\n\n## Steps to Reproduce\n1. Configure filesystem MCP with allowed directories (see config below)\n2. Try to create a directory using a relative path:\n   ```javascript\n   mcp_filesystem_create_directory({ path: \"./Dishank\" })\n   ```\n3. Observe error: `Error: Access denied - path outside allowed directories: c:\\Learn\\import_tracker\\Dishank not in C:\\Learn\\import_tracker, C:\\Users\\ADMIN\\.kiro, C:\\Learn\\import_tracker`\n\n4. Try with absolute path:\n   ```javascript\n   mcp_filesystem_create_directory({ path: \"C:\\\\Learn\\\\import_tracker\\\\Dishank\" })\n   ```\n5. This works successfully: `Successfully created directory C:\\Learn\\import_tracker\\Dishank`\n\n## Expected Behavior\nBoth relative and absolute paths should work as long as they resolve to a location within the allowed directories.\n\n## Current Configuration\n```json\n{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-filesystem\",\n        \"C:\\\\Learn\\\\import_tracker\",\n        \"C:\\\\Users\\\\ADMIN\\\\.kiro\",\n        \".\"\n      ],\n      \"disabled\": false,\n      \"autoApprove\": [\n        \"read_file\"\n      ]\n    }\n  }\n}\n```\n\n## Environment\n- **OS**: Windows\n- **Platform**: win32\n- **Shell**: cmd\n- **Kiro IDE**: Version: 0.1.25 (user setup)\n                VSCode Version: 1.94.0\n                Commit: 6124c448360adbeb0adbc771a86db283d2d3f4db\n                Date: 2025-07-23T19:45:58.809Z\n                Electron: 30.5.1\n                ElectronBuildId: undefined\n                Chromium: 124.0.6367.243\n                Node.js: 20.16.0\n                V8: 12.4.254.20-electron.0\n                OS: Windows_NT x64 10.0.26100\n- **MCP Server Version**: @modelcontextprotocol/server-filesystem (latest via npx)\n- **Node.js**: 18+ (required for Kiro)\n\n## Additional Context\nThe error message shows that the server is correctly resolving the relative path to its absolute form (`c:\\Learn\\import_tracker\\Dishank`), but then fails to recognize that this path is within the allowed directories list, even though `C:\\Learn\\import_tracker` is explicitly listed as an allowed directory.\n\nThis appears to be a path normalization issue where the comparison between the resolved path and allowed directories is failing due to case sensitivity or path format differences.\n\n## Reproduction via Kiro IDE\nThis issue was discovered while using Kiro IDE's MCP integration. The filesystem MCP server was configured through Kiro's `.kiro/settings/mcp.json` configuration file, and the issue manifested when attempting to create directories through Kiro's AI assistant using the `mcp_filesystem_create_directory` tool.\n\n## Impact\nThis bug affects the usability of the filesystem MCP server when integrated with IDEs like Kiro, as users naturally expect relative paths to work within their project workspace.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2416/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2415",
      "id": 3258243569,
      "node_id": "I_kwDONRaG_87CNNnx",
      "number": 2415,
      "title": "Large memory.json : Memory Indexing",
      "user": {
        "login": "akvoloh",
        "id": 221434820,
        "node_id": "U_kgDODTLTxA",
        "avatar_url": "https://avatars.githubusercontent.com/u/221434820?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/akvoloh",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8359496976,
          "node_id": "LA_kwDONRaG_88AAAAB8kPNEA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-memory",
          "name": "server-memory",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Memory MCP server - src/memory"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-07-24T02:10:18Z",
      "updated_at": "2025-08-24T02:46:51Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Request for an automated memory indexing system that dynamically analyzes MCP memory content and generates optimized index entities for efficient token usage and faster information retrieval.\n\n## Problem Statement\nThe use of MCP Memory is the primary source of notes and list items for several projects and IDE's.\nCurrent MCP memory systems suffer from token inefficiency when retrieving information:\n- Large memory files (80k+ tokens) result in expensive queries\n- Manual index creation is time-consuming and error-prone\n- Generic search patterns don't leverage content structure\n- No automatic optimization for common access patterns\n\n## Proposed Solution\nImplement an indexing system that:\n\n### 1. **Content Analysis Engine**\n- Automatically scans all entities in memory.json\n- Identifies content patterns and categories (Directives, project status, file locations, etc.)\n- Extracts key information using pattern matching and keyword detection\n- Builds content category maps based on actual memory content\n\n### 2. **Dynamic Index Generation**\n- Creates summary entities only for content categories that exist\n- Generates optimized observations limited to essential information\n- Produces consistent naming conventions for quick access commands\n- Maintains backward compatibility with existing memory structure\n\n### 3. **Token Optimization**\n- Limits index entity size to <500 tokens each\n- Creates hierarchical access patterns (summary → detailed → comprehensive)\n- Implements content prioritization (most relevant information first)\n- Provides progressive detail strategies for complex queries\n\n### 4. **Command Integration**\n- Generates standardized quick access commands (memrules, memstatus, etc.)\n- Creates mapping between commands and specific index entities\n- Implements fallback strategies for missing content\n- Maintains consistent search patterns across projects\n\n## Technical Requirements\n\n### Core Components Needed:\n1. **Memory Parser**: Read and parse JSON Lines format memory files\n2. **Pattern Analyzer**: Detect content categories using configurable patterns\n3. **Index Generator**: Create optimized summary entities dynamically\n4. **Command Mapper**: Generate quick access command definitions\n5. **Output Writer**: Write optimized memory files with indexes\n\n### Configuration Support:\n- Configurable content patterns for different project types\n- Adjustable token limits per index category\n- Customizable command naming conventions\n- Optional index categories based on project needs\n\n### Performance Targets:\n- Generate indexes with <500 tokens each\n- Achieve 95%+ token reduction for common queries\n- Support memory files with 1000+ entities\n\n\n## Expected Benefits\n\n### For System Performance:\n- **Lower API costs** due to reduced token usage\n- **Faster response times** with targeted queries\n- **Improved scalability** as memory files grow\n- **Better user experience** with consistent performance\n\n\n## Compatibility Requirements\n- Maintain full backward compatibility with existing memory.json format\n- Support both JSON Lines and standard JSON input formats\n- Work with existing MCP server implementations\n- Preserve all existing entity relationships and metadata\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2415/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2397",
      "id": 3253209217,
      "node_id": "I_kwDONRaG_87B6AiB",
      "number": 2397,
      "title": "Memory graph: relations not returned when using `open_nodes`/`search_nodes` unless both ends match searched entities",
      "user": {
        "login": "Nirei",
        "id": 1224071,
        "node_id": "MDQ6VXNlcjEyMjQwNzE=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1224071?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Nirei",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-07-22T15:46:00Z",
      "updated_at": "2025-07-22T15:48:20Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nWhen using either `search_nodes` or `open_nodes` tools from the memory graph MCP, an unintuitive behaviour arises regarding relation search. For a relation to be included in the results, it needs to relate entities present in the search query in *both* ends (`from` and `to`). Arguably, this makes relations very hard to be discovered by an agent and the graph nearly impossible to explore.\n\nI open this as a bug suspecting that this is not the intended behavior, but I apologize in advance if it is. If that's the case, instead I would suggest this as an enhancement.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Create the knowledge graph described later.\n2. Ask an agent to use the open_nodes tool directly to open the `Zero Cool` node.\n\nKnowledge graph:\n```\n{\"type\":\"entity\",\"entityType\":\"person\",\"name\":\"Zero Cool\"}\n{\"type\":\"entity\",\"entityType\":\"Person\",\"name\":\"Dade Murphy\"}\n{\"type\":\"relation\",\"from\":\"Zero Cool\",\"relationType\":\"is\",\"to\":\"Dade Murphy\"}\n{\"type\":\"relation\",\"from\":\"Dade Murphy\",\"relationType\":\"is\",\"to\":\"Zero Cool\"}\n```\n\n**Expected behavior**\nWhat I expected was to obtain both the Zero Cool entity and all it's relations so it'd be possible for the agent to traverse the graph and research the existing information. Instead the response is the following:\n\n```\n{\n  \"text\": \"{\\n  \\\"entities\\\": [\\n    {\\n      \\\"type\\\": \\\"entity\\\",\\n      \\\"entityType\\\": \\\"person\\\",\\n      \\\"name\\\": \\\"Zero Cool\\\"\\n    }\\n  ],\\n  \\\"relations\\\": []\\n}\",\n  \"type\": \"text\"\n}\n```\n\nNotice the empty relations array. Instead, it should include all of \"Zero Cools\" relations.\n\nThe cause for this seems to be the following lines:\nhttps://github.com/modelcontextprotocol/servers/blob/220987921bc72409d35d1a5775597782ae688556/src/memory/index.ts#L172C1-L175C7\n\nThese are present in both `open_nodes` and `search_nodes` functions and require that **both** `to` and `from` sides be present in the search entity results to include a relation. This could potentially be resolved by changing the condition to include relations where either endpoint is present in the search result (i.e., using an `||`  instead of `&&`).\n\nAlthough the current behavior might be advantageous in queries involving many entities, for a single entity query, it makes relations completely inaccesible. For agents exploring the knowledge graph starting from a single node, this restriction hides all useful relational context, breaking graph traversal. This diminishes the usefulness of both tools.\n\nFurthermore, if this is indeed the intended behavior then it might make sense to make an exception when there's only a single entity in the results.\n\nHappy to clarify or send a PR if this seems like a desirable fix. Please let me know how I can help!",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2397/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2393",
      "id": 3250568968,
      "node_id": "I_kwDONRaG_87Bv78I",
      "number": 2393,
      "title": "Feature Suggestion: A GUI/CLI Visualizer for memory.json",
      "user": {
        "login": "Manamama",
        "id": 78492008,
        "node_id": "MDQ6VXNlcjc4NDkyMDA4",
        "avatar_url": "https://avatars.githubusercontent.com/u/78492008?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Manamama",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-07-22T01:03:24Z",
      "updated_at": "2025-07-22T01:03:24Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Hello,\n\nAs this repository does not have a \"Discussions\" tab enabled, I am posting this here. This is not a bug report, but rather a feature suggestion and a contribution.\n\nI've been working with the `server-memory` component and noticed that the `memory.json` file is stored in a well-hidden location (e.g., `~/.nvm/versions/node/v20.19.3/lib/node_modules/@modelcontextprotocol/server-memory/dist/`). I have read the manual and understand that this location is configurable, which is helpful.\n\nTo make interacting with this data easier, I have developed a script that visualizes the contents of these JSON stream files as a PlantUML graph. It can be integrated directly into the Nautilus file manager for a seamless GUI experience.\n\nThe script, along with detailed installation instructions, is available at the following URL:\n**https://github.com/Manamama/Ubuntu_Scripts_1/blob/main/puml-viewer.sh**\n\nI believe a similar visualization tool could be a valuable addition to the official project.\n\nPosted on behalf of Manamama by Gemini ♊ Core AI.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2393/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2389",
      "id": 3246666753,
      "node_id": "I_kwDONRaG_87BhDQB",
      "number": 2389,
      "title": "mcp/filesystem cannot use working directory only on LM Studio",
      "user": {
        "login": "mcDandy",
        "id": 18588943,
        "node_id": "MDQ6VXNlcjE4NTg4OTQz",
        "avatar_url": "https://avatars.githubusercontent.com/u/18588943?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/mcDandy",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2025-07-20T20:28:00Z",
      "updated_at": "2025-08-24T03:24:10Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nmcp/filesystem does not start under LM Studio without specified path or with working directory as described in intelij idea integration\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. put the tool in mcp.json\n```\n{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-filesystem\",\n      ]\n    }\n  }\n}\n```\n2. Enable it\n**Expected behavior**\nThe tool should be usable.\n\n**Logs**\n```\n2025-07-20 22:12:47 [ERROR]\n [Plugin(mcp/filesystem)] stderr: Usage: mcp-server-filesystem <allowed-directory> [additional-directories...]\n2025-07-20 22:12:47 [ERROR]\n [Plugin(mcp/filesystem)] stderr: Error in LM Studio MCP bridge process: _0x4143fb [McpError]: MCP error -32000: Connection closed\n    at _0x477d3a._onclose (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:822761)\n    at <computed>.onclose (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:821476)\n    at ChildProcess.<anonymous> (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:796633)\n    at ChildProcess.emit (node:events:519:28)\n    at _0x4f9a1e.<computed> [as emit] (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:279636)\n    at maybeClose (node:internal/child_process:1105:16)\n    at ChildProcess._handle.onexit (node:internal/child_process:305:5) {\n  code: -32000,\n  data: undefined\n}\n_0x4143fb [McpError]: MCP error -32000: Connection closed\n    at _0x477d3a._onclose (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:822761)\n    at <computed>.onclose (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:821476)\n    at ChildProcess.<anonymous> (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:796633)\n    at ChildProcess.emit (node:events:519:28)\n    at _0x4f9a1e.<computed> [as emit] (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:279636)\n    at maybeClose (node:internal/child_process:1105:16)\n    at ChildProcess._handle.onexit (node:internal/child_process:305:5) {\n  code: -32000,\n  data: undefined\n}\n```\n\n**Additional context**\nwith \"${workspaceFolder}\" as standin for working directory shows \n```\n2025-07-20 22:27:14 [ERROR]\n [Plugin(mcp/filesystem)] stderr: Error accessing directory ${workspaceFolder}: Error: ENOENT: no such file or directory, stat 'C:\\Users\\danda\\.lmstudio\\extensions\\plugins\\mcp\\filesystem\\${workspaceFolder}'\n    at async Object.stat (node:internal/fs/promises:1032:18)\n    at async file:///C:/Users/danda/AppData/Local/npm-cache/_npx/a3241bba59c344f5/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js:48:23\n    at async Promise.all (index 0)\n    at async file:///C:/Users/danda/AppData/Local/npm-cache/_npx/a3241bba59c344f5/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js:46:1 {\n  errno: -4058,\n  code: 'ENOENT',\n  syscall: 'stat',\n  path: 'C:\\\\Users\\\\danda\\\\.lmstudio\\\\extensions\\\\plugins\\\\mcp\\\\filesystem\\\\${workspaceFolder}'\n}\n2025-07-20 22:27:14 [ERROR]\n [Plugin(mcp/filesystem)] stderr: Error in LM Studio MCP bridge process: _0x4143fb [McpError]: MCP error -32000: Connection closed\n    at _0x477d3a._onclose (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:822761)\n    at <computed>.onclose (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:821476)\n    at ChildProcess.<anonymous> (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:796633)\n    at ChildProcess.emit (node:events:519:28)\n    at _0x4f9a1e.<computed> [as emit] (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:279636)\n    at maybeClose (node:internal/child_process:1105:16)\n    at ChildProcess._handle.onexit (node:internal/child_process:305:5) {\n  code: -32000,\n  data: undefined\n}\n2025-07-20 22:27:14 [ERROR]\n [Plugin(mcp/filesystem)] stderr: _0x4143fb [McpError]: MCP error -32000: Connection closed\n    at _0x477d3a._onclose (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:822761)\n    at <computed>.onclose (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:821476)\n    at ChildProcess.<anonymous> (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:796633)\n    at ChildProcess.emit (node:events:519:28)\n    at _0x4f9a1e.<computed> [as emit] (D:\\Program Files\\LM Studio\\resources\\app\\.webpack\\lib\\mcpbridgeworker.js:1:279636)\n    at maybeClose (node:internal/child_process:1105:16)\n    at ChildProcess._handle.onexit (node:internal/child_process:305:5) {\n  code: -32000,\n  data: undefined\n}\n```",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2389/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2317",
      "id": 3219513131,
      "node_id": "I_kwDONRaG_86_5d8r",
      "number": 2317,
      "title": "Add support for host allowlisting to Fetch server",
      "user": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8359493310,
          "node_id": "LA_kwDONRaG_88AAAAB8kO-vg",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-fetch",
          "name": "server-fetch",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Fetch MCP server - src/fetch"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 5,
      "created_at": "2025-07-10T14:06:56Z",
      "updated_at": "2025-08-19T14:13:52Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nThe `fetch` MCP server currently allows connections to local/internal IP addresses without any restrictions, which poses a security risk. While the README has been updated with a caution notice, this reference implementation could be misused if deployed without proper safeguards.\n\n**Describe the solution you'd like**\nImplement a host allowlisting mechanism for the fetch server that would:\n- Allow administrators to specify which hosts/domains the server can connect to\n- By default, block connections to local/internal IP ranges (127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc.)\n- Provide configuration options to explicitly allow internal IPs if needed for specific use cases\n- Implement checks at the socket level to avoid TOCTOU (Time-of-Check-Time-of-Use) vulnerabilities\n\n**Describe alternatives you've considered**\n- **Leave as-is with documentation only**: Continue with just the warning in the README, but this leaves the reference implementation vulnerable and sets a poor security example\n\n**Additional context**\n- Consider adding example configurations to the Readme showing secure deployment patterns.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2317/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2308",
      "id": 3212592373,
      "node_id": "I_kwDONRaG_86_fET1",
      "number": 2308,
      "title": "Specify directory exclusion pattern in Filesystem config file",
      "user": {
        "login": "dgor82",
        "id": 41432066,
        "node_id": "MDQ6VXNlcjQxNDMyMDY2",
        "avatar_url": "https://avatars.githubusercontent.com/u/41432066?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/dgor82",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-07-08T13:34:57Z",
      "updated_at": "2025-07-28T02:35:25Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "In my `ant.dir.ant.anthropic.filesystem.json` config file, in additon to 'allowed_directories' I'd like to be able to specify 'exclusion_patterns'.\n\nIn my case, my allowed_directory is a .NET solution folder, and I'd like to exclude all '/obj' and '/bin' sub directories in order to exclude all the build artefacts that .NET generates. This way, Claude during RAG can focus only on actual source code files. I have seen it search through hundreds of artefacts inside /obj/  folders which only confuses Claude. \n\nI'm sure I'm not the only developer who needs this? \n\nThank you for considering. ",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2308/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2226",
      "id": 3181174867,
      "node_id": "I_kwDONRaG_869nOBT",
      "number": 2226,
      "title": "How to constrain the totalThoughts parameter in sequential-thinking MCP?",
      "user": {
        "login": "601724080",
        "id": 25952552,
        "node_id": "MDQ6VXNlcjI1OTUyNTUy",
        "avatar_url": "https://avatars.githubusercontent.com/u/25952552?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/601724080",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432755,
          "node_id": "LA_kwDONRaG_88AAAABzvmeMw",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/question",
          "name": "question",
          "color": "d876e3",
          "default": true,
          "description": "Further information is requested"
        },
        "1": {
          "id": 8359497168,
          "node_id": "LA_kwDONRaG_88AAAAB8kPN0A",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-sequentialthinking",
          "name": "server-sequentialthinking",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Sequential Thinking MCP server - src/sequentialthinking"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 6,
      "created_at": "2025-06-27T03:08:34Z",
      "updated_at": "2025-08-27T12:39:49Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "env:\n    windows11 24H2\n    spring-boot 3.4.3\n    spring-ai 1.0.0-M6\n\nconfig1:\n   `{\n  \"mcpServers\": {\n    \"sequential-thinking\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"C:\\\\Users\\\\gtx\\\\AppData\\\\Roaming\\\\npm\\\\node_modules\\\\@modelcontextprotocol\\\\server-sequential-thinking\\\\dist\",\n        \"--totalThoughts=5\"\n      ]\n    }\n  }\n}`\n\nconfig2:\n   `{\n  \"mcpServers\": {\n    \"sequential-thinking\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"C:\\\\Users\\\\gtx\\\\AppData\\\\Roaming\\\\npm\\\\node_modules\\\\@modelcontextprotocol\\\\server-sequential-thinking\\\\dist\"\n      ],\n    \"env\":{\n        \"totalThoughts\": 5\n}\n    }\n  }\n}`\n\nlog:\n`result={content=[{type=text, text={\n  \"thoughtNumber\": 4,\n  \"totalThoughts\": 11,\n  \"nextThoughtNeeded\": true,\n  \"branches\": [\n    \"analysis_1\"\n  ],\n  \"thoughtHistoryLength\": 186\n}}]}, error=null]`\n\nNo matter whether I use config1 or config2, I can't restrict totalThoughts.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2226/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2219",
      "id": 3178698341,
      "node_id": "I_kwDONRaG_869dxZl",
      "number": 2219,
      "title": "filesystem mcp: dot directories should be ignored",
      "user": {
        "login": "lmorg",
        "id": 12153701,
        "node_id": "MDQ6VXNlcjEyMTUzNzAx",
        "avatar_url": "https://avatars.githubusercontent.com/u/12153701?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/lmorg",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 7,
      "created_at": "2025-06-26T10:51:03Z",
      "updated_at": "2025-09-13T04:54:56Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nDot directories (eg `.git`, `.terraform`, etc) are included in the `filesystem` MCP search tools.\n\nThese directories, particularly `.git` can get enormous and thus massively inflate the token usage for the agent.\n\nWhat's more, these directories generally don't add much value (they're \"hidden\" for a reason) for project analysis. And in the worst case scenarios, might even contain sensitive information.\n\nPersonally, I'd go further and say allowing `filesystem` to work against any dot-prefixed filesystem objects is a _security_ risk, however, for the sake of wanting to keep this discussion focused on reducing token count rather than whether users should or should not be aware of what data they're sharing with the agent, this GH Issue is focused on dot-prefixed directories like `.git`.\n\n**To Reproduce**\nRun the MCP with the authorised path being the root of any project that is also a git repository.\n\n**Expected behavior**\nDot-prefixed directories should be ignored _by default_. An environmental variable and/or command line flag can be used to optionally re-enable this behaviour.\n\n**Logs**\n\n\n**Additional context**\nWhile the intended behaviour is to selectively include the files and/or directories you wish to authorise for use with this MCP, the benefit of using an MCP like this is for speed and convenience. Thus a typical use case might well be someone selecting the entire project directory. On the surface, this is a pragmatic approach -- so long as dot-prefixed directories (and arguably files too) are ignored by default.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2219/reactions",
        "total_count": 3,
        "+1": 3,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2207",
      "id": 3175494581,
      "node_id": "I_kwDONRaG_869RjO1",
      "number": 2207,
      "title": "Add PEP8 linting for Python servers",
      "user": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-06-25T12:37:12Z",
      "updated_at": "2025-09-01T19:39:37Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nThe Python MCP servers in this repository (fetch, git, and time) currently include `ruff` as a dev dependency but lack standardized PEP8 linting configuration. This leads to inconsistent code style across the Python codebase and makes it difficult for contributors to ensure their code follows Python style guidelines.\n\n**Describe the solution you'd like**\nAdd standardized PEP8 linting configuration using `ruff` to all Python servers in the repository. This should include:\n- Consistent `[tool.ruff]` configuration sections in each Python server's `pyproject.toml`\n- Enable PEP8 style checks (E and W error codes)\n- Set up import sorting and formatting rules\n- Add linting commands to development workflows\n- Optionally integrate linting checks into CI/CD pipelines\n\n**Describe alternatives you've considered**\n- Using `flake8` + `black` + `isort` combination instead of `ruff` (but `ruff` is already included and provides all these features in one tool)\n- Using `pylint` for more comprehensive static analysis (but it's heavier and `ruff` covers PEP8 compliance well)\n- Adding pre-commit hooks with linting (could be done in addition to the main solution)\n\n**Additional context**\nThe repository already has `ruff` included in dev dependencies for all Python servers, so this enhancement would primarily involve adding configuration rather than new dependencies.\n\n(Description generated by Claude and edited by me)",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2207/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2176",
      "id": 3165180754,
      "node_id": "I_kwDONRaG_868qNNS",
      "number": 2176,
      "title": "Add updating CLAUDE.md to PR checklist to ensure that significant changes are reflected in instructions",
      "user": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-06-21T15:43:00Z",
      "updated_at": "2025-06-21T15:43:20Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nIts easy to forget to reflect any significant repo changes in the CLAUDE.md file.    It could help to add it to the checklist in the PR description.\n\n**Describe the solution you'd like**\nAdd a line to the PR checklist, something like 'Any significant changes to the repo are also reflected in the CLAUDE.md file.'\n\n**Describe alternatives you've considered**\nForgetting to include it and confusing Claude.\n\n**Additional context**\nNot all of the servers have this type of instructions file added yet (I think its only in Everything), but they probably should.\nThis has become more relevant as more people use Claude Code to work on the repo.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2176/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2173",
      "id": 3164417929,
      "node_id": "I_kwDONRaG_868nS-J",
      "number": 2173,
      "title": "Multi tenancy support for all MCP servers",
      "user": {
        "login": "sahabsinghgurjar",
        "id": 13799432,
        "node_id": "MDQ6VXNlcjEzNzk5NDMy",
        "avatar_url": "https://avatars.githubusercontent.com/u/13799432?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sahabsinghgurjar",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2025-06-20T21:34:55Z",
      "updated_at": "2025-09-01T03:10:07Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "We are looking to adopt MCP for thridparty integrations like AWS,AZURE, JIRA. our customers like to integrate their respective account and pull data in their account on our software platform. Since we support multitenancy in our platform and host all customers to single platform. So we are really struggling to find a way to use same MCP server to serve all of our tenants without running a separate MCP server per tenant.\n\n**Describe the solution you'd like**\nEach of the MCP server should provide a way to pass Authentication information while calling tools instead of configuring it at MCP server start. once we have this support then we can make calls for different tenants using their provided credentials to same MCP server.  For example same AWS MCP server can serve multiple customers who wants to pull data from their respective AWS account using same MCP host application.\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2173/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2113",
      "id": 3147702282,
      "node_id": "I_kwDONRaG_867niAK",
      "number": 2113,
      "title": "[BUG] Filesystem server crashes completely when any configured path is invalid",
      "user": {
        "login": "MikeyBeez",
        "id": 14264000,
        "node_id": "MDQ6VXNlcjE0MjY0MDAw",
        "avatar_url": "https://avatars.githubusercontent.com/u/14264000?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/MikeyBeez",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-06-15T15:32:49Z",
      "updated_at": "2025-08-22T18:21:02Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# [BUG] Filesystem server crashes completely when any configured path is invalid\n\n## Description\n\nThe MCP filesystem server shuts down entirely if ANY path in the configuration becomes invalid (unmounted volume, disconnected network share, typo). This makes the protocol fragile and unsuitable for production use.\n\n## Current Behavior\n\nWhen any path is inaccessible:\n- Entire filesystem server shuts down\n- ALL file access is lost (not just the invalid path)\n- No error recovery possible through Claude\n- Must restart Claude Desktop to restore functionality\n\n## Expected Behavior\n\n- Invalid paths should be skipped with a warning\n- Valid paths should continue working\n- Server should log errors but not crash\n- Graceful degradation, not total failure\n\n## Steps to Reproduce\n\n1. Configure MCP filesystem with a network mount:\n```json\n\"filesystem\": {\n  \"command\": \"npx\",\n  \"args\": [\n    \"-y\",\n    \"@modelcontextprotocol/server-filesystem\",\n    \"/Users/username/Desktop\",\n    \"/Volumes/NetworkDrive\"  // This is a Samba mount\n  ]\n}\n```\n\n2. Start Claude Desktop - filesystem works normally\n3. Disconnect network/unmount the Samba share\n4. Filesystem server crashes completely\n5. Cannot access even `/Users/username/Desktop` anymore\n\n## Impact\n\n- **Severity**: Critical\n- **Frequency**: Happens whenever network conditions change\n- **Workaround**: None - must restart Claude Desktop\n\n## Real-World Example\n\nWorking on a project with files on both local disk and a Samba mount. Network hiccup occurs:\n- Samba mount at `/Volumes/Code` becomes unavailable\n- MCP filesystem server completely dies\n- Cannot read local logs to debug\n- Cannot edit local config files to remove the bad path\n- Cannot continue any file-based work until full restart\n\n## Proposed Solution\n\n```javascript\n// pseudocode\nasync function initializePaths(configuredPaths) {\n  const validPaths = [];\n  \n  for (const path of configuredPaths) {\n    try {\n      await fs.access(path);\n      validPaths.push(path);\n      console.log(`✓ Registered path: ${path}`);\n    } catch (error) {\n      console.warn(`✗ Skipping inaccessible path: ${path} - ${error.message}`);\n      // Continue with other paths instead of crashing\n    }\n  }\n  \n  if (validPaths.length === 0) {\n    throw new Error(\"No valid paths found\");\n  }\n  \n  return validPaths;\n}\n```\n\n## Additional Context\n\nThis \"all-or-nothing\" approach contradicts basic fault tolerance principles. For MCP to be a production-ready standard for LLM tool integration, it must handle common scenarios like:\n- Network drives going offline\n- Typos in configuration\n- Permissions changes\n- Mounted volumes being unmounted\n\nThe current behavior makes MCP fragile and frustrating to use in real development environments.\n\n## Environment\n\n- OS: macOS [your version]\n- Claude Desktop: [your version]\n- MCP filesystem server version: [check package.json]\n\n## Related Issues\n\n- [Check if there are similar issues and reference them]\n\n---\n\n**Note**: This issue affects anyone using MCP with network storage, external drives, or complex file system configurations. The fix would significantly improve MCP's reliability and production readiness.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2113/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2098",
      "id": 3142463973,
      "node_id": "I_kwDONRaG_867TjHl",
      "number": 2098,
      "title": "MCP Filesystem UTF-8 Issues on Windows with German Umlaute",
      "user": {
        "login": "rklugseder",
        "id": 11180370,
        "node_id": "MDQ6VXNlcjExMTgwMzcw",
        "avatar_url": "https://avatars.githubusercontent.com/u/11180370?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/rklugseder",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-06-13T06:47:02Z",
      "updated_at": "2025-07-28T02:35:24Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# SOLVED: MCP Filesystem UTF-8 Issues on Windows with German Umlaute\n\n## Problem\nIf you're using the MCP Filesystem Server on Windows and experiencing issues with German umlauts (ä, ö, ü, ß) or other UTF-8 characters being converted to \"?\" when writing files - this post provides a working solution.\n\n**Symptoms:**\n- Writing \"Bäcker\" → becomes \"B?cker\"\n- Reading works fine, only writing is affected\n- Affects all non-ASCII characters (€, é, ñ, etc.)\n\n## Root Cause\nThe STDIO communication between Claude Desktop and the MCP server doesn't use UTF-8 encoding by default on Windows. The Node.js process needs explicit encoding settings.\n\n## Solution\n\n### Step 1: Switch from Docker to NPX installation\n```bash\nnpm install -g @modelcontextprotocol/server-filesystem\n```\n\n### Step 2: Patch the server code\nEdit file: `%APPDATA%\\npm\\node_modules\\@modelcontextprotocol\\server-filesystem\\dist\\index.js`\n\nAdd after the imports section:\n```javascript\n// UTF-8 Fix for Windows\nif (process.platform === 'win32') {\n    process.stdout.setEncoding('utf8');\n    process.stderr.setEncoding('utf8');\n    process.stdin.setEncoding('utf8');\n}\n```\n\n### Step 3: Update Claude Desktop config\nEdit: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\nReplace the filesystem server configuration:\n```json\n\"filesystem\": {\n  \"command\": \"npx\",\n  \"args\": [\n    \"-y\", \n    \"@modelcontextprotocol/server-filesystem\",\n    \"C:\\\\claude_local\",\n    \"C:\\\\Users\\\\[YOUR_USERNAME]\\\\AppData\\\\Roaming\\\\Claude\"\n  ],\n  \"env\": {\n    \"LANG\": \"de_DE.UTF-8\",\n    \"LC_ALL\": \"de_DE.UTF-8\",\n    \"LC_CTYPE\": \"de_DE.UTF-8\"\n  }\n}\n```\n\n### Step 4: Restart Claude Desktop\n\n## Result\nUTF-8 characters now work perfectly: ÄÖÜ äöü ß € ✓\n\n## Technical Details\n- Tested on Windows 10/11\n- Node.js 18+\n- MCP SDK v0.6.0\n- Solution discovered: June 13, 2025\n\n## Full Documentation\nComplete documentation with automated patch script available at:\n[Link to GitHub Gist or Repository]\n\n## Contributing\nThis fix should ideally be integrated into the official MCP Filesystem Server. I'm planning to submit a PR to the official repository. If you've experienced this issue, please comment to support the PR.\n\n---\n*Keywords: MCP, Model Context Protocol, Filesystem Server, UTF-8, Windows, German, Umlaute, Claude Desktop, encoding fix*",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2098/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2089",
      "id": 3139469002,
      "node_id": "I_kwDONRaG_867IH7K",
      "number": 2089,
      "title": "Error Adding Git MCP Plugin in Windsurf IDE: npm E404 Not Found",
      "user": {
        "login": "umair313",
        "id": 12728453,
        "node_id": "MDQ6VXNlcjEyNzI4NDUz",
        "avatar_url": "https://avatars.githubusercontent.com/u/12728453?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/umair313",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359493992,
          "node_id": "LA_kwDONRaG_88AAAAB8kPBaA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-git",
          "name": "server-git",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Git MCP server - src/git"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 9,
      "created_at": "2025-06-12T09:11:49Z",
      "updated_at": "2025-08-12T09:57:31Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nWhen attempting to add the Git MCP plugin in the latest version of Windsurf IDE, an error occurs indicating a failure to initialize the server. The npm error code E404 suggests that the package `@modelcontextprotocol/server-git` is not found in the npm registry.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Open the latest version of Windsurf IDE.\n2. Navigate to the Configure section for adding plugins.\n3. Attempt to add the Git MCP plugin by executing `npm exec @modelcontextprotocol/server-git`.\n4. Observe the error message in the IDE.\n\n**Expected behavior**\nThe Git MCP plugin should be successfully added and initialized without any errors, allowing integration with Git repositories in Windsurf IDE.\n\n**Logs**\n```\nError: failed to initialize server: npm error code E404 npm error 404 Not Found - GET https://registry.npmjs.org/@modelcontextprotocol%2fserver-git - Not found npm error 404 npm error 404 '@modelcontextprotocol/server-git@*' is not in this registry. npm error 404 npm error 404 Note that you can also install from a tarball, folder, http url, or git url. A complete log of this run can be found in: /home/umair/.npm/_logs/2025-06-12T05_55_07_678Z-debug-0.log\ndebug0.log: server terminated.\n```\n\n**Additional context**\nThe issue occurs on a Linux system (Linux 6.11.0-26-generic) with Node v20.19.2 and npm v10.8.2. The error suggests the package may not be published to the npm registry or there might be a misconfiguration. No Git configuration is needed as per the IDE's indication.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2089/reactions",
        "total_count": 2,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 1
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2044",
      "id": 3128321418,
      "node_id": "I_kwDONRaG_866dmWK",
      "number": 2044,
      "title": "\"Cannot read properties of undefined (reading 'toLowerCase')\" Error",
      "user": {
        "login": "egoes",
        "id": 47311,
        "node_id": "MDQ6VXNlcjQ3MzEx",
        "avatar_url": "https://avatars.githubusercontent.com/u/47311?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/egoes",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359496976,
          "node_id": "LA_kwDONRaG_88AAAAB8kPNEA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-memory",
          "name": "server-memory",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Memory MCP server - src/memory"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-06-08T12:46:37Z",
      "updated_at": "2025-07-03T14:13:11Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Description\nThe `search_nodes` function in the MCP memory server fails with a JavaScript error when attempting to search the knowledge graph. The error indicates that the search function is trying to call `.toLowerCase()` on an undefined value without proper input validation.\n\n## Error Message\n```\nMCP error -32603: Cannot read properties of undefined (reading 'toLowerCase')\n```\n\n## Environment\n- **OS**: macOS (using Homebrew)\n- **Node.js version**: v23.11.0\n- **MCP Memory Server version**: Latest (installed via npx)\n- **Client**: Claude Desktop and Claude Code\n\n## Configuration\n```json\n{\n  \"memory\": {\n    \"command\": \"/opt/homebrew/bin/npx\",\n    \"args\": [\"-y\", \"@modelcontextprotocol/server-memory\"]\n  }\n}\n```\n\nThe MCP server was also added to Claude Code using:\n```bash\nclaude mcp add-from-claude-desktop\n```\n\n## Steps to Reproduce\n1. Set up MCP memory server with the above configuration\n2. Create some entities in the knowledge graph (this works fine)\n3. Attempt to use the `search_nodes` function with any query string\n4. Error occurs consistently in both Claude Desktop and Claude Code environments\n\n## Expected Behavior\nThe `search_nodes` function should successfully search through entity names, types, and observation content, returning relevant matches.\n\n## Actual Behavior\nThe function throws a JavaScript error and fails to return any results.\n\n## Workarounds\n- `read_graph` function works correctly\n- `open_nodes` function works correctly when entity names are known\n- The issue is isolated to the search functionality\n\n## Additional Context\nThis appears to be related to insufficient input validation in the search function. The error suggests that the function attempts to call `.toLowerCase()` on a parameter that is undefined or null.\n\nA similar error pattern has been reported with `.includes()` method: \"Cannot read properties of undefined (reading 'includes')\" indicating a broader input validation issue in the memory server's search implementation.\n\n## Impact\nThis bug prevents users from effectively searching their knowledge graphs, limiting the utility of the memory server for knowledge retrieval operations.\n\n---\n*This issue was reported with assistance from Claude (Anthropic).*",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2044/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2035",
      "id": 3125773850,
      "node_id": "I_kwDONRaG_866T4Ya",
      "number": 2035,
      "title": "fetch fails without optional settings",
      "user": {
        "login": "jhmonroe",
        "id": 10901293,
        "node_id": "MDQ6VXNlcjEwOTAxMjkz",
        "avatar_url": "https://avatars.githubusercontent.com/u/10901293?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jhmonroe",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359493310,
          "node_id": "LA_kwDONRaG_88AAAAB8kO-vg",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-fetch",
          "name": "server-fetch",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Fetch MCP server - src/fetch"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-06-06T20:14:18Z",
      "updated_at": "2025-08-27T12:25:11Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nThe docs clearly say:\n\nfetch - Fetches a URL from the internet and extracts its contents as markdown.\nurl (string, required): URL to fetch\nmax_length (integer, **optional**): Maximum number of characters to return (default: 5000)\nstart_index (integer, **optional**): Start content from this character index (default: 0)\nraw (boolean, **optional**): Get raw content without markdown conversion (default: false)\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. When I run fetch in LibreChat (Docker) + MCP/Fetch (Docker), I receive the attached errors\n\n**Expected behavior**\nIt should disregard optional settings\n\n![Image](https://github.com/user-attachments/assets/420c6105-373b-4af7-9751-5e260d2fc18e)\n\nanother try:\n\n![Image](https://github.com/user-attachments/assets/f7673518-e610-4f85-896b-0d1e16ae3e1d)\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2035/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2034",
      "id": 3125651434,
      "node_id": "I_kwDONRaG_866Tafq",
      "number": 2034,
      "title": "edit_file tool fails when exact text match not found due to whitespace differences",
      "user": {
        "login": "DannyJanmaat",
        "id": 158817156,
        "node_id": "U_kgDOCXdbhA",
        "avatar_url": "https://avatars.githubusercontent.com/u/158817156?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/DannyJanmaat",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-06-06T19:12:32Z",
      "updated_at": "2025-07-03T14:13:23Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Describe the bug\nThe edit_file tool throws \"Could not find exact match for edit\" error when the oldText parameter doesn't exactly match the file content, typically due to whitespace, line ending, or formatting differences between expected and actual text.\nTo Reproduce\nSteps to reproduce the behavior:\n\nUse edit_file with oldText parameter containing text that differs in whitespace from actual file content\nTool attempts to find exact match in file\nError occurs: \"Could not find exact match for edit\"\nEdit operation fails completely\n\nExpected behavior\nThe edit_file tool should either handle minor whitespace differences or provide clear guidance on exact text matching requirements. Alternative: tool should show snippet of actual file content around failed match location.\nLogs\nError: Could not find exact match for edit:\n[oldText content that failed to match]\nAdditional context\nThis occurs frequently when working with code files where whitespace, indentation, or line endings may vary. The tool requires perfect character-by-character matching including all whitespace. Recommendation: always use read_file before edit_file to ensure exact text matching.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2034/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2033",
      "id": 3125614015,
      "node_id": "I_kwDONRaG_866TRW_",
      "number": 2033,
      "title": "edit_file tool fails with PowerShell expressions containing dollar signs",
      "user": {
        "login": "DannyJanmaat",
        "id": 158817156,
        "node_id": "U_kgDOCXdbhA",
        "avatar_url": "https://avatars.githubusercontent.com/u/158817156?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/DannyJanmaat",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-06-06T18:56:34Z",
      "updated_at": "2025-07-28T02:35:24Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Describe the bug\nThe edit_file tool fails with \"Cannot convert undefined or null to object\" when newText parameter contains PowerShell expressions with dollar signs and parentheses, specifically $($null -eq $toolObject.Config).\nTo Reproduce\nSteps to reproduce the behavior:\n\nUse edit_file tool with newText containing PowerShell expression: $($null -eq $toolObject.Config)\nTool attempts to parse JSON parameter\nError occurs: \"Cannot convert undefined or null to object\"\n\nExpected behavior\nThe edit_file tool should handle PowerShell code with dollar signs and complex expressions without JSON parsing errors, or provide clear documentation about required escaping.\nLogs\nError executing code: Cannot convert undefined or null to object\nAdditional context\nThe error occurs during JSON parameter parsing in the MCP filesystem server's edit_file function when PowerShell variables and expressions are used in newText strings. Dollar signs in PowerShell code appear to interfere with JSON processing.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2033/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2032",
      "id": 3125597951,
      "node_id": "I_kwDONRaG_866TNb_",
      "number": 2032,
      "title": "read_multiple_files empty array",
      "user": {
        "login": "DannyJanmaat",
        "id": 158817156,
        "node_id": "U_kgDOCXdbhA",
        "avatar_url": "https://avatars.githubusercontent.com/u/158817156?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/DannyJanmaat",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-06-06T18:50:10Z",
      "updated_at": "2025-07-03T14:13:44Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Describe the bug\nThe read_multiple_files function lacks clear documentation about its parameter structure and behavior, causing AI assistants to use it incorrectly without explicit instruction.\nTo Reproduce\nSteps to reproduce the behavior:\n\nAsk AI to use read_multiple_files function without providing parameter format instruction\nAI attempts to use function with incorrect parameter structure\nFunction call fails or behaves unexpectedly\nOnly works when explicitly told: \"read_multiple_files takes 'paths' parameter as string array with full file paths, returns content for each file with path as separator\"\n\nExpected behavior\nThe function should have clear documentation stating that it requires a \"paths\" parameter as a string array containing full file paths, does not accept empty arrays, and returns file content with path separation.\nLogs\nFunction calls fail when AI uses incorrect parameter structure without explicit instruction about the required format.\nAdditional context\nThis documentation gap affects AI assistant usability and requires manual instruction for proper function usage. The parameter structure should be self-documenting or clearly specified in the function schema.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2032/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2030",
      "id": 3124942467,
      "node_id": "I_kwDONRaG_866QtaD",
      "number": 2030,
      "title": "`add_observations` tool in Knowledge Graph Memory Server frequently fails when invoked by GitHub Copilot Chat (Claude) in VS Code",
      "user": {
        "login": "sascharo",
        "id": 88222654,
        "node_id": "MDQ6VXNlcjg4MjIyNjU0",
        "avatar_url": "https://avatars.githubusercontent.com/u/88222654?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sascharo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359496976,
          "node_id": "LA_kwDONRaG_88AAAAB8kPNEA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-memory",
          "name": "server-memory",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Memory MCP server - src/memory"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-06-06T14:25:23Z",
      "updated_at": "2025-10-19T17:05:07Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nWhen using the Knowledge Graph Memory Server (installed via `npx`) in Visual Studio Code with GitHub Copilot Chat and Claude, the `add_observations` tool often fails silently or with error, whereas other tools such as `create_entities` appear to work consistently. This suggests a potential reliability or integration issue specific to `add_observations`.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n\n1. Open VS Code Insiders (version details below).\n2. Launch GitHub Copilot Chat (with Claude selected as the agent, if applicable).\n3. Interact with a tool using the `add_observations` method.\n4. Observe that `add_observations` often fails or is not executed correctly.\n5. In contrast, call `create_entities` – observe it works as expected.\n\n**Expected behavior**\nThe `add_observations` tool should succeed reliably when invoked by GitHub Copilot Chat in the same way as other tools like `create_entities`.\n\n**Logs**\nUnfortunately, there are no explicit errors printed to the terminal in some cases – but behavior can be confirmed through:\n\n* Incomplete or missing results from memory updates.\n* Lack of entity enrichment that would normally follow `add_observations`.\n\n**Additional context**\n\n* VS Code Version:\n\n  ```\n  Version: 1.101.0-insider (user setup)  \n  Commit: 921786be45c46b54e727aa4f210819bbc6430a6d  \n  Date: 2025-06-06T00:25:36.239Z  \n  Electron: 35.5.1  \n  ElectronBuildId: 11708675  \n  Chromium: 134.0.6998.205  \n  Node.js: 22.15.1  \n  V8: 13.4.114.21-electron.0  \n  OS: Windows_NT x64 10.0.26100  \n  ```\n* Knowledge Graph Memory Server is started via `npx`.\n* Issue seems specific to GitHub Copilot Chat + Claude integration, possibly due to malformed requests or unexpected payloads.\n* A minimal reproduction may involve a manual call to `add_observations` via an equivalent API endpoint to compare success/failure modes.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2030/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2020",
      "id": 3120211664,
      "node_id": "I_kwDONRaG_865-qbQ",
      "number": 2020,
      "title": "Remote hosted deployment",
      "user": {
        "login": "chanansh",
        "id": 5981644,
        "node_id": "MDQ6VXNlcjU5ODE2NDQ=",
        "avatar_url": "https://avatars.githubusercontent.com/u/5981644?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/chanansh",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8461835294,
          "node_id": "LA_kwDONRaG_88AAAAB-F1cHg",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/waiting%20for%20submitter",
          "name": "waiting for submitter",
          "color": "C5DEF5",
          "default": false,
          "description": "Waiting for the submitter to provide more info"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-06-05T07:52:41Z",
      "updated_at": "2025-07-03T14:15:31Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "How can I get a hosted mvp without installing it myself?\nI just want a url to give remote mcp to vapi.ai and other platform",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2020/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1971",
      "id": 3104020480,
      "node_id": "I_kwDONRaG_865A5gA",
      "number": 1971,
      "title": "Claude Desktop launches command args incorrectly",
      "user": {
        "login": "hemna",
        "id": 672207,
        "node_id": "MDQ6VXNlcjY3MjIwNw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/672207?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/hemna",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2025-05-30T19:00:19Z",
      "updated_at": "2025-05-30T19:17:33Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nTrying to launch my own mcp.py script as an Claude Desktop MCP server.\n\nClaude Desktop for Mac\nVersion 0.9.3\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Edit claude_desktop_config.json and add entry to mcpServers with args.\n2. Launch Claude Desktop\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\nI expect the mcp server to get called.  It doesn't because of a weird args issue.\n\n**Logs**\nWhy is it using 2 foward slashes before the args?  //foo.py was not in my config?  \n\n```\n│2025-05-30T14:54:14.103-0400 2025-05-30T18:54:14.100Z [weather] [info] Message from client: {\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"c│\n│2025-05-30T14:54:14.254-0400 /Users/I530566/devel/mine/hamradio/haminfo/.venv/bin/python: can't open file '//foo.py': [Errno 2] No such file or directory                                            │\n│2025-05-30T14:54:14.257-0400 2025-05-30T18:54:14.257Z [weather] [info] Server transport closed                                                                                                       │\n│2025-05-30T14:54:14.258-0400 2025-05-30T18:54:14.257Z [weather] [info] Client transport closed\n```\n\n**Additional context**\nMy claude_desktop_config.json\n\n```\n{\n  \"mcpServers\": {\n    \"weather\": {\n      \"command\": \"/Users/I530566/devel/mine/hamradio/haminfo/.venv/bin/python\",\n      \"args\": [\n        \"foo.py\"\n      ],\n      \"env\": {\n        \"VIRTUAL_ENV\":\"/Users/I530566/devel/mine/hamradio/haminfo/.venv\"\n      }\n    }\n  },\n  \"logging\": {\n    \"level\": \"DEBUG\"\n  },\n  \"globalShortcut\": \"Ctrl+Q\"\n}\n```\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1971/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1970",
      "id": 3103921938,
      "node_id": "I_kwDONRaG_865AhcS",
      "number": 1970,
      "title": "🐛 MCP Filesystem: macOS Screenshot Files Fail with Unicode Characters (ENOENT Error)",
      "user": {
        "login": "jagansanikommu",
        "id": 69500541,
        "node_id": "MDQ6VXNlcjY5NTAwNTQx",
        "avatar_url": "https://avatars.githubusercontent.com/u/69500541?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jagansanikommu",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-30T18:20:27Z",
      "updated_at": "2025-07-28T02:35:23Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# 🐛 Bug Report: MCP Filesystem Operations Fail with macOS Screenshot Files\n\n## **Issue Summary**\nMCP filesystem operations (move, read, access) fail on macOS system-generated screenshot files despite files being visible in directory listings. This affects file organization workflows and creates inconsistent behavior between file listing and file manipulation operations.\n\n## **Environment**\n- **OS**: macOS (multiple versions affected)  \n- **MCP Server**: @modelcontextprotocol/server-filesystem\n- **Node.js**: (applicable versions)\n- **Files Affected**: System-generated screenshot files specifically\n\n## **Bug Description**\n\n### **Expected Behavior**\n- Files visible in `list_directory` operations should be accessible for `move_file`, `read_file`, and other filesystem operations\n- All files with standard characters (including spaces) should be movable\n\n### **Actual Behavior**\n- Screenshot files appear in directory listings but throw `ENOENT: no such file or directory` errors during move/access operations\n- Regular files with spaces work perfectly when created manually\n- Only affects macOS system-generated screenshots\n\n## **Reproduction Steps**\n\n1. Take screenshots on macOS (creates files like `Screenshot 2025-04-23 at 2.40.40 PM.png`)\n2. Use MCP `list_directory` tool - files appear normally\n3. Attempt to use `move_file` or `read_file` on these screenshots\n4. Operations fail with ENOENT errors\n5. Create a test file with similar naming manually - it works fine\n\n## **Root Cause Analysis**\n\nmacOS screenshot files contain **non-standard Unicode characters**:\n- Non-breaking spaces (U+00A0) instead of regular spaces (U+0020)  \n- Special Unicode characters in timestamps and punctuation\n- Extended file attributes that interfere with standard Node.js file operations\n\n### **Evidence**\n```bash\n# This works (manually created file)\ntouch \"Screenshot 2025-04-23 at 2.40.40 PM copy.png\"\n# MCP can move this file successfully\n\n# This fails (macOS system-generated)  \nmv \"Screenshot 2025-04-23 at 2.40.40 PM.png\" ./Images/\n# ENOENT error in MCP operations\n```\n\n## **Impact**\n- **High**: Affects common file organization workflows\n- **User Experience**: Creates confusion when \"visible\" files can't be accessed\n- **Productivity**: Forces manual workarounds for basic file management\n- **Cross-platform**: Specifically impacts macOS users with no clear error messaging\n\n## **Workarounds Currently Available**\n\n### **For Users:**\n1. Manual drag-and-drop in Finder\n2. Rename files to simpler names first\n3. Use Terminal with shell globbing: `mv Screenshot*.png ./Images/`\n\n### **For Developers:**\n```javascript\n// Unicode normalization before file operations\nfunction normalizeFilename(filename) {\n    return filename\n        .normalize('NFC')\n        .replace(/\\u00A0/g, ' ')  // Replace non-breaking spaces\n        .replace(/[\\u2000-\\u206F]/g, ' '); // Replace Unicode spaces\n}\n```\n\n## **Proposed Solutions**\n\n### **1. Unicode Normalization (Recommended)**\n- Implement filename normalization before all file operations\n- Handle common Unicode edge cases in filesystem operations\n- Add this to the core MCP filesystem server\n\n### **2. Better Error Handling**\n- Distinguish between \"file not found\" vs \"file access encoding issues\"\n- Provide more descriptive error messages for Unicode-related failures\n- Suggest normalization when Unicode issues are detected\n\n### **3. Alternative Access Methods**\n- Use native OS APIs that handle Unicode edge cases better\n- Implement fallback mechanisms for problematic filenames\n\n### **4. Documentation & Warning**\n- Document known limitations with macOS screenshot files\n- Provide clear workarounds in the README\n- Add warning in error messages about potential Unicode issues\n\n## **Technical Implementation Suggestion**\n\n```typescript\n// Add to filesystem operations\nfunction sanitizeFilePath(filePath: string): string {\n    return filePath\n        .normalize('NFC')\n        .replace(/\\u00A0/g, ' ')\n        .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F]/g, ' ');\n}\n\n// Apply before all file operations\nexport async function moveFile(source: string, destination: string) {\n    const normalizedSource = sanitizeFilePath(source);\n    const normalizedDest = sanitizeFilePath(destination);\n    // ... existing move logic\n}\n```\n\n## **Testing Files**\nI can provide test screenshot files demonstrating this issue if needed for reproduction.\n\n## **Related Issues**\nThis may affect other MCP filesystem implementations:\n- mark3labs/mcp-filesystem-server  \n- bsmi021/mcp-filesystem-server\n- Other Node.js based filesystem MCPs\n\n---\n\n**Request**: This impacts daily productivity for macOS users. Unicode normalization would solve this elegantly while maintaining backward compatibility.\n\nLet me know if you need additional details, test files, or are interested in a PR implementing the Unicode normalization solution.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1970/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1939",
      "id": 3096350327,
      "node_id": "I_kwDONRaG_864jo53",
      "number": 1939,
      "title": "\"error\":{\"code\":-32601,\"message\":\"Method not found\"}}",
      "user": {
        "login": "mimosel",
        "id": 129038745,
        "node_id": "U_kgDOB7D5mQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/129038745?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/mimosel",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-28T07:30:25Z",
      "updated_at": "2025-05-28T07:30:52Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nWhen asking Claude Desktop to implement changes to my code, it stops working and says \"Claude will return soon\nClaude.ai is currently experiencing a temporary service disruption. We’re [working on it](https://status.anthropic.com/), please check back soon.\".\n\n\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. No idea.\n\n**Expected behavior**\nNo stopping and no error message.\n\n**Logs**\nIn mcp-server-filesystem.log i find:\n```\nSecure MCP Filesystem Server running on stdio\nAllowed directories: [\n  'C:\\\\_Lokale_oeffentliche_Ablage_ungesichert\\\\Claude',\n  'C:\\\\_Lokale_oeffentliche_Ablage_ungesichert\\\\GodotProjects\\\\test',\n  'C:\\\\_Lokale_oeffentliche_Ablage_ungesichert\\\\MedienzentrumDashboard',\n  'C:\\\\_Lokale_oeffentliche_Ablage_ungesichert\\\\MCP_Servers',\n  'C:\\\\_Lokale_oeffentliche_Ablage_ungesichert\\\\Git\\\\DFN-Terminplaner-ICS-Exporter'\n]\n2025-05-28T07:11:31.610Z [filesystem] [info] Message from server: {\"jsonrpc\":\"2.0\",\"id\":0,\"result\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{\"tools\":{}},\"serverInfo\":{\"name\":\"secure-filesystem-server\",\"version\":\"0.2.0\"}}}\n2025-05-28T07:11:31.610Z [filesystem] [info] Message from client: {\"method\":\"notifications/initialized\",\"jsonrpc\":\"2.0\"}\n2025-05-28T07:11:31.629Z [filesystem] [info] Message from client: {\"method\":\"tools/list\",\"params\":{},\"jsonrpc\":\"2.0\",\"id\":1}\n2025-05-28T07:11:31.631Z [filesystem] [info] Message from client: {\"method\":\"tools/list\",\"params\":{},\"jsonrpc\":\"2.0\",\"id\":2}\n2025-05-28T07:11:31.631Z [filesystem] [info] Message from client: {\"method\":\"resources/list\",\"params\":{},\"jsonrpc\":\"2.0\",\"id\":3}\n2025-05-28T07:11:31.636Z [filesystem] [info] Message from server: {\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{\"tools\":[{\"name\":\"read_file\",\"description\":\"Read the complete contents of a file from the file system. Handles various text encodings and provides detailed error messages if the file cannot be read. Use this tool when you need to examine the contents of a single file. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"read_multiple_files\",\"description\":\"Read the contents of multiple files simultaneously. This is more efficient than reading files one by one when you need to analyze or compare multiple files. Each file's content is returned with its path as a reference. Failed reads for individual files won't stop the entire operation. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"paths\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"paths\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"write_file\",\"description\":\"Create a new file or completely overwrite an existing file with new content. Use with caution as it will overwrite existing files without warning. Handles text content with proper encoding. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"content\":{\"type\":\"string\"}},\"required\":[\"path\",\"content\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"edit_file\",\"description\":\"Make line-based edits to a text file. Each edit replaces exact line sequences with new content. Returns a git-style diff showing the changes made. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"edits\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"oldText\":{\"type\":\"string\",\"description\":\"Text to search for - must match exactly\"},\"newText\":{\"type\":\"string\",\"description\":\"Text to replace with\"}},\"required\":[\"oldText\",\"newText\"],\"additionalProperties\":false}},\"dryRun\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Preview changes using git-style diff format\"}},\"required\":[\"path\",\"edits\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"create_directory\",\"description\":\"Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. If the directory already exists, this operation will succeed silently. Perfect for setting up directory structures for projects or ensuring required paths exist. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"list_directory\",\"description\":\"Get a detailed listing of all files and directories in a specified path. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is essential for understanding directory structure and finding specific files within a directory. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"directory_tree\",\"description\":\"Get a recursive tree view of files and directories as a JSON structure. Each entry includes 'name', 'type' (file/directory), and 'children' for directories. Files have no children array, while directories always have a children array (which may be empty). The output is formatted with 2-space indentation for readability. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"move_file\",\"description\":\"Move or rename files and directories. Can move files between directories and rename them in a single operation. If the destination exists, the operation will fail. Works across different directories and can be used for simple renaming within the same directory. Both source and destination must be within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"source\":{\"type\":\"string\"},\"destination\":{\"type\":\"string\"}},\"required\":[\"source\",\"destination\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"search_files\",\"description\":\"Recursively search for files and directories matching a pattern. Searches through all subdirectories from the starting path. The search is case-insensitive and matches partial names. Returns full paths to all matching items. Great for finding files when you don't know their exact location. Only searches within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"pattern\":{\"type\":\"string\"},\"excludePatterns\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"default\":[]}},\"required\":[\"path\",\"pattern\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"get_file_info\",\"description\":\"Retrieve detailed metadata about a file or directory. Returns comprehensive information including size, creation time, last modified time, permissions, and type. This tool is perfect for understanding file characteristics without reading the actual content. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"list_allowed_directories\",\"description\":\"Returns the list of directories that this server is allowed to access. Use this to understand which directories are available before trying to access files.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{},\"required\":[]}}]}}\n2025-05-28T07:11:31.638Z [filesystem] [info] Message from server: {\"jsonrpc\":\"2.0\",\"id\":3,\"error\":{\"code\":-32601,\"message\":\"Method not found\"}}\n2025-05-28T07:11:31.639Z [filesystem] [info] Message from server: {\"jsonrpc\":\"2.0\",\"id\":2,\"result\":{\"tools\":[{\"name\":\"read_file\",\"description\":\"Read the complete contents of a file from the file system. Handles various text encodings and provides detailed error messages if the file cannot be read. Use this tool when you need to examine the contents of a single file. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"read_multiple_files\",\"description\":\"Read the contents of multiple files simultaneously. This is more efficient than reading files one by one when you need to analyze or compare multiple files. Each file's content is returned with its path as a reference. Failed reads for individual files won't stop the entire operation. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"paths\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"paths\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"write_file\",\"description\":\"Create a new file or completely overwrite an existing file with new content. Use with caution as it will overwrite existing files without warning. Handles text content with proper encoding. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"content\":{\"type\":\"string\"}},\"required\":[\"path\",\"content\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"edit_file\",\"description\":\"Make line-based edits to a text file. Each edit replaces exact line sequences with new content. Returns a git-style diff showing the changes made. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"edits\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"oldText\":{\"type\":\"string\",\"description\":\"Text to search for - must match exactly\"},\"newText\":{\"type\":\"string\",\"description\":\"Text to replace with\"}},\"required\":[\"oldText\",\"newText\"],\"additionalProperties\":false}},\"dryRun\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Preview changes using git-style diff format\"}},\"required\":[\"path\",\"edits\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"create_directory\",\"description\":\"Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. If the directory already exists, this operation will succeed silently. Perfect for setting up directory structures for projects or ensuring required paths exist. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"list_directory\",\"description\":\"Get a detailed listing of all files and directories in a specified path. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is essential for understanding directory structure and finding specific files within a directory. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"directory_tree\",\"description\":\"Get a recursive tree view of files and directories as a JSON structure. Each entry includes 'name', 'type' (file/directory), and 'children' for directories. Files have no children array, while directories always have a children array (which may be empty). The output is formatted with 2-space indentation for readability. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"move_file\",\"description\":\"Move or rename files and directories. Can move files between directories and rename them in a single operation. If the destination exists, the operation will fail. Works across different directories and can be used for simple renaming within the same directory. Both source and destination must be within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"source\":{\"type\":\"string\"},\"destination\":{\"type\":\"string\"}},\"required\":[\"source\",\"destination\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"search_files\",\"description\":\"Recursively search for files and directories matching a pattern. Searches through all subdirectories from the starting path. The search is case-insensitive and matches partial names. Returns full paths to all matching items. Great for finding files when you don't know their exact location. Only searches within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"pattern\":{\"type\":\"string\"},\"excludePatterns\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"default\":[]}},\"required\":[\"path\",\"pattern\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"get_file_info\",\"description\":\"Retrieve detailed metadata about a file or directory. Returns comprehensive information including size, creation time, last modified time, permissions, and type. This tool is perfect for understanding file characteristics without reading the actual content. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"list_allowed_directories\",\"description\":\"Returns the list of directories that this server is allowed to access. Use this to understand which directories are available before trying to access files.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{},\"required\":[]}}]}}\n2025-05-28T07:11:31.652Z [filesystem] [info] Message from client: {\"method\":\"prompts/list\",\"params\":{},\"jsonrpc\":\"2.0\",\"id\":4}\n2025-05-28T07:11:31.653Z [filesystem] [info] Message from server: {\"jsonrpc\":\"2.0\",\"id\":4,\"error\":{\"code\":-32601,\"message\":\"Method not found\"}}\n2025-05-28T07:11:31.670Z [filesystem] [info] Message from client: {\"method\":\"tools/list\",\"params\":{},\"jsonrpc\":\"2.0\",\"id\":5}\n2025-05-28T07:11:31.671Z [filesystem] [info] Message from client: {\"method\":\"tools/list\",\"params\":{},\"jsonrpc\":\"2.0\",\"id\":6}\n2025-05-28T07:11:31.671Z [filesystem] [info] Message from client: {\"method\":\"resources/list\",\"params\":{},\"jsonrpc\":\"2.0\",\"id\":7}\n2025-05-28T07:11:31.675Z [filesystem] [info] Message from server: {\"jsonrpc\":\"2.0\",\"id\":5,\"result\":{\"tools\":[{\"name\":\"read_file\",\"description\":\"Read the complete contents of a file from the file system. Handles various text encodings and provides detailed error messages if the file cannot be read. Use this tool when you need to examine the contents of a single file. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"read_multiple_files\",\"description\":\"Read the contents of multiple files simultaneously. This is more efficient than reading files one by one when you need to analyze or compare multiple files. Each file's content is returned with its path as a reference. Failed reads for individual files won't stop the entire operation. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"paths\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"paths\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"write_file\",\"description\":\"Create a new file or completely overwrite an existing file with new content. Use with caution as it will overwrite existing files without warning. Handles text content with proper encoding. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"content\":{\"type\":\"string\"}},\"required\":[\"path\",\"content\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"edit_file\",\"description\":\"Make line-based edits to a text file. Each edit replaces exact line sequences with new content. Returns a git-style diff showing the changes made. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"edits\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"oldText\":{\"type\":\"string\",\"description\":\"Text to search for - must match exactly\"},\"newText\":{\"type\":\"string\",\"description\":\"Text to replace with\"}},\"required\":[\"oldText\",\"newText\"],\"additionalProperties\":false}},\"dryRun\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Preview changes using git-style diff format\"}},\"required\":[\"path\",\"edits\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"create_directory\",\"description\":\"Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. If the directory already exists, this operation will succeed silently. Perfect for setting up directory structures for projects or ensuring required paths exist. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"list_directory\",\"description\":\"Get a detailed listing of all files and directories in a specified path. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is essential for understanding directory structure and finding specific files within a directory. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"directory_tree\",\"description\":\"Get a recursive tree view of files and directories as a JSON structure. Each entry includes 'name', 'type' (file/directory), and 'children' for directories. Files have no children array, while directories always have a children array (which may be empty). The output is formatted with 2-space indentation for readability. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"move_file\",\"description\":\"Move or rename files and directories. Can move files between directories and rename them in a single operation. If the destination exists, the operation will fail. Works across different directories and can be used for simple renaming within the same directory. Both source and destination must be within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"source\":{\"type\":\"string\"},\"destination\":{\"type\":\"string\"}},\"required\":[\"source\",\"destination\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"search_files\",\"description\":\"Recursively search for files and directories matching a pattern. Searches through all subdirectories from the starting path. The search is case-insensitive and matches partial names. Returns full paths to all matching items. Great for finding files when you don't know their exact location. Only searches within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"pattern\":{\"type\":\"string\"},\"excludePatterns\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"default\":[]}},\"required\":[\"path\",\"pattern\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"get_file_info\",\"description\":\"Retrieve detailed metadata about a file or directory. Returns comprehensive information including size, creation time, last modified time, permissions, and type. This tool is perfect for understanding file characteristics without reading the actual content. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"list_allowed_directories\",\"description\":\"Returns the list of directories that this server is allowed to access. Use this to understand which directories are available before trying to access files.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{},\"required\":[]}}]}}\n2025-05-28T07:11:31.675Z [filesystem] [info] Message from server: {\"jsonrpc\":\"2.0\",\"id\":6,\"result\":{\"tools\":[{\"name\":\"read_file\",\"description\":\"Read the complete contents of a file from the file system. Handles various text encodings and provides detailed error messages if the file cannot be read. Use this tool when you need to examine the contents of a single file. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"read_multiple_files\",\"description\":\"Read the contents of multiple files simultaneously. This is more efficient than reading files one by one when you need to analyze or compare multiple files. Each file's content is returned with its path as a reference. Failed reads for individual files won't stop the entire operation. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"paths\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"paths\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"write_file\",\"description\":\"Create a new file or completely overwrite an existing file with new content. Use with caution as it will overwrite existing files without warning. Handles text content with proper encoding. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"content\":{\"type\":\"string\"}},\"required\":[\"path\",\"content\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"edit_file\",\"description\":\"Make line-based edits to a text file. Each edit replaces exact line sequences with new content. Returns a git-style diff showing the changes made. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"edits\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"oldText\":{\"type\":\"string\",\"description\":\"Text to search for - must match exactly\"},\"newText\":{\"type\":\"string\",\"description\":\"Text to replace with\"}},\"required\":[\"oldText\",\"newText\"],\"additionalProperties\":false}},\"dryRun\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Preview changes using git-style diff format\"}},\"required\":[\"path\",\"edits\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"create_directory\",\"description\":\"Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. If the directory already exists, this operation will succeed silently. Perfect for setting up directory structures for projects or ensuring required paths exist. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"list_directory\",\"description\":\"Get a detailed listing of all files and directories in a specified path. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is essential for understanding directory structure and finding specific files within a directory. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"directory_tree\",\"description\":\"Get a recursive tree view of files and directories as a JSON structure. Each entry includes 'name', 'type' (file/directory), and 'children' for directories. Files have no children array, while directories always have a children array (which may be empty). The output is formatted with 2-space indentation for readability. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"move_file\",\"description\":\"Move or rename files and directories. Can move files between directories and rename them in a single operation. If the destination exists, the operation will fail. Works across different directories and can be used for simple renaming within the same directory. Both source and destination must be within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"source\":{\"type\":\"string\"},\"destination\":{\"type\":\"string\"}},\"required\":[\"source\",\"destination\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"search_files\",\"description\":\"Recursively search for files and directories matching a pattern. Searches through all subdirectories from the starting path. The search is case-insensitive and matches partial names. Returns full paths to all matching items. Great for finding files when you don't know their exact location. Only searches within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"pattern\":{\"type\":\"string\"},\"excludePatterns\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"default\":[]}},\"required\":[\"path\",\"pattern\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"get_file_info\",\"description\":\"Retrieve detailed metadata about a file or directory. Returns comprehensive information including size, creation time, last modified time, permissions, and type. This tool is perfect for understanding file characteristics without reading the actual content. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"list_allowed_directories\",\"description\":\"Returns the list of directories that this server is allowed to access. Use this to understand which directories are available before trying to access files.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{},\"required\":[]}}]}}\n2025-05-28T07:11:31.680Z [filesystem] [info] Message from server: {\"jsonrpc\":\"2.0\",\"id\":7,\"error\":{\"code\":-32601,\"message\":\"Method not found\"}}\n2025-05-28T07:11:31.693Z [filesystem] [info] Message from client: {\"method\":\"prompts/list\",\"params\":{},\"jsonrpc\":\"2.0\",\"id\":8}\n2025-05-28T07:11:31.695Z [filesystem] [info] Message from server: {\"jsonrpc\":\"2.0\",\"id\":8,\"error\":{\"code\":-32601,\"message\":\"Method not found\"}}\n2025-05-28T07:11:59.501Z [filesystem] [info] Message from client: {\"method\":\"tools/list\",\"params\":{},\"jsonrpc\":\"2.0\",\"id\":9}\n2025-05-28T07:11:59.502Z [filesystem] [info] Message from client: {\"method\":\"tools/list\",\"params\":{},\"jsonrpc\":\"2.0\",\"id\":10}\n2025-05-28T07:11:59.502Z [filesystem] [info] Message from client: {\"method\":\"resources/list\",\"params\":{},\"jsonrpc\":\"2.0\",\"id\":11}\n2025-05-28T07:11:59.505Z [filesystem] [info] Message from server: {\"jsonrpc\":\"2.0\",\"id\":9,\"result\":{\"tools\":[{\"name\":\"read_file\",\"description\":\"Read the complete contents of a file from the file system. Handles various text encodings and provides detailed error messages if the file cannot be read. Use this tool when you need to examine the contents of a single file. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"read_multiple_files\",\"description\":\"Read the contents of multiple files simultaneously. This is more efficient than reading files one by one when you need to analyze or compare multiple files. Each file's content is returned with its path as a reference. Failed reads for individual files won't stop the entire operation. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"paths\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"paths\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"write_file\",\"description\":\"Create a new file or completely overwrite an existing file with new content. Use with caution as it will overwrite existing files without warning. Handles text content with proper encoding. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"content\":{\"type\":\"string\"}},\"required\":[\"path\",\"content\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"edit_file\",\"description\":\"Make line-based edits to a text file. Each edit replaces exact line sequences with new content. Returns a git-style diff showing the changes made. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"edits\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"oldText\":{\"type\":\"string\",\"description\":\"Text to search for - must match exactly\"},\"newText\":{\"type\":\"string\",\"description\":\"Text to replace with\"}},\"required\":[\"oldText\",\"newText\"],\"additionalProperties\":false}},\"dryRun\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Preview changes using git-style diff format\"}},\"required\":[\"path\",\"edits\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"create_directory\",\"description\":\"Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. If the directory already exists, this operation will succeed silently. Perfect for setting up directory structures for projects or ensuring required paths exist. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"list_directory\",\"description\":\"Get a detailed listing of all files and directories in a specified path. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is essential for understanding directory structure and finding specific files within a directory. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"directory_tree\",\"description\":\"Get a recursive tree view of files and directories as a JSON structure. Each entry includes 'name', 'type' (file/directory), and 'children' for directories. Files have no children array, while directories always have a children array (which may be empty). The output is formatted with 2-space indentation for readability. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"move_file\",\"description\":\"Move or rename files and directories. Can move files between directories and rename them in a single operation. If the destination exists, the operation will fail. Works across different directories and can be used for simple renaming within the same directory. Both source and destination must be within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"source\":{\"type\":\"string\"},\"destination\":{\"type\":\"string\"}},\"required\":[\"source\",\"destination\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"search_files\",\"description\":\"Recursively search for files and directories matching a pattern. Searches through all subdirectories from the starting path. The search is case-insensitive and matches partial names. Returns full paths to all matching items. Great for finding files when you don't know their exact location. Only searches within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"pattern\":{\"type\":\"string\"},\"excludePatterns\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"default\":[]}},\"required\":[\"path\",\"pattern\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"get_file_info\",\"description\":\"Retrieve detailed metadata about a file or directory. Returns comprehensive information including size, creation time, last modified time, permissions, and type. This tool is perfect for understanding file characteristics without reading the actual content. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"list_allowed_directories\",\"description\":\"Returns the list of directories that this server is allowed to access. Use this to understand which directories are available before trying to access files.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{},\"required\":[]}}]}}\n2025-05-28T07:11:59.506Z [filesystem] [info] Message from server: {\"jsonrpc\":\"2.0\",\"id\":10,\"result\":{\"tools\":[{\"name\":\"read_file\",\"description\":\"Read the complete contents of a file from the file system. Handles various text encodings and provides detailed error messages if the file cannot be read. Use this tool when you need to examine the contents of a single file. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"read_multiple_files\",\"description\":\"Read the contents of multiple files simultaneously. This is more efficient than reading files one by one when you need to analyze or compare multiple files. Each file's content is returned with its path as a reference. Failed reads for individual files won't stop the entire operation. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"paths\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"paths\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"write_file\",\"description\":\"Create a new file or completely overwrite an existing file with new content. Use with caution as it will overwrite existing files without warning. Handles text content with proper encoding. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"content\":{\"type\":\"string\"}},\"required\":[\"path\",\"content\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"edit_file\",\"description\":\"Make line-based edits to a text file. Each edit replaces exact line sequences with new content. Returns a git-style diff showing the changes made. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"edits\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"oldText\":{\"type\":\"string\",\"description\":\"Text to search for - must match exactly\"},\"newText\":{\"type\":\"string\",\"description\":\"Text to replace with\"}},\"required\":[\"oldText\",\"newText\"],\"additionalProperties\":false}},\"dryRun\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Preview changes using git-style diff format\"}},\"required\":[\"path\",\"edits\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"create_directory\",\"description\":\"Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. If the directory already exists, this operation will succeed silently. Perfect for setting up directory structures for projects or ensuring required paths exist. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"list_directory\",\"description\":\"Get a detailed listing of all files and directories in a specified path. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is essential for understanding directory structure and finding specific files within a directory. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"directory_tree\",\"description\":\"Get a recursive tree view of files and directories as a JSON structure. Each entry includes 'name', 'type' (file/directory), and 'children' for directories. Files have no children array, while directories always have a children array (which may be empty). The output is formatted with 2-space indentation for readability. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"move_file\",\"description\":\"Move or rename files and directories. Can move files between directories and rename them in a single operation. If the destination exists, the operation will fail. Works across different directories and can be used for simple renaming within the same directory. Both source and destination must be within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"source\":{\"type\":\"string\"},\"destination\":{\"type\":\"string\"}},\"required\":[\"source\",\"destination\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"search_files\",\"description\":\"Recursively search for files and directories matching a pattern. Searches through all subdirectories from the starting path. The search is case-insensitive and matches partial names. Returns full paths to all matching items. Great for finding files when you don't know their exact location. Only searches within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"pattern\":{\"type\":\"string\"},\"excludePatterns\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"default\":[]}},\"required\":[\"path\",\"pattern\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"get_file_info\",\"description\":\"Retrieve detailed metadata about a file or directory. Returns comprehensive information including size, creation time, last modified time, permissions, and type. This tool is perfect for understanding file characteristics without reading the actual content. Only works within allowed directories.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"}},\"required\":[\"path\"],\"additionalProperties\":false,\"$schema\":\"http://json-schema.org/draft-07/schema#\"}},{\"name\":\"list_allowed_directories\",\"description\":\"Returns the list of directories that this server is allowed to access. Use this to understand which directories are available before trying to access files.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{},\"required\":[]}}]}}\n2025-05-28T07:11:59.507Z [filesystem] [info] Message from server: {\"jsonrpc\":\"2.0\",\"id\":11,\"error\":{\"code\":-32601,\"message\":\"Method not found\"}}\n2025-05-28T07:11:59.577Z [filesystem] [info] Message from client: {\"method\":\"prompts/list\",\"params\":{},\"jsonrpc\":\"2.0\",\"id\":12}\n2025-05-28T07:11:59.579Z [filesystem] [info] Message from server: {\"jsonrpc\":\"2.0\",\"id\":12,\"error\":{\"code\":-32601,\"message\":\"Method not found\"}}\n```\n**Additional context**\nAdd any other context about the problem here.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1939/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1897",
      "id": 3087357059,
      "node_id": "I_kwDONRaG_864BVSD",
      "number": 1897,
      "title": "CLI Broker",
      "user": {
        "login": "cboecking",
        "id": 16024854,
        "node_id": "MDQ6VXNlcjE2MDI0ODU0",
        "avatar_url": "https://avatars.githubusercontent.com/u/16024854?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/cboecking",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-05-23T19:36:21Z",
      "updated_at": "2025-05-23T19:39:40Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "There is a CLI tool for the vast majority 'things' that a user wants to accomplish. This is true from `psql` to `websocat` to `ls` to .... CLI tools already understand stdin and stdout. \n\nLet's provide an easy way to take advantage of these already-created-applications via an MCP server. Please consider creating a server that simply brokers a CLI tool call.\n\nThe hope is that someone can take the example and either a) copy it for their own purpose purpose or b) extend the existing server to add additional commands.\n\nI am happy to provide an example; however, I wanted to check with the group to make sure I am thinking about this topic the right way.\n\nThank you for considering and sharing your thoughts! Chuck",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1897/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1879",
      "id": 3082712120,
      "node_id": "I_kwDONRaG_863vnQ4",
      "number": 1879,
      "title": "Proposal: Environment Variable Configuration for Filesystem MCP Server",
      "user": {
        "login": "Jaesun23",
        "id": 93811182,
        "node_id": "U_kgDOBZdx7g",
        "avatar_url": "https://avatars.githubusercontent.com/u/93811182?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Jaesun23",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-22T09:33:35Z",
      "updated_at": "2025-07-28T02:35:23Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# Proposal: Environment Variable Configuration for Filesystem MCP Server\n\n## Overview\n\nCurrently, the Filesystem MCP Server only supports configuring allowed and denied directories through command-line arguments. This approach can become unwieldy and hard to manage when complex configurations are needed. I propose adding support for environment variable-based configuration to improve usability.\n\n## Proposed Changes\n\nAllow configuration of allowed and denied directories through the following environment variables:\n\n- `ALLOWED_DIRS`: Semicolon-separated list of allowed directories\n- `ALLOWED_READONLY_DIRS`: Semicolon-separated list of read-only allowed directories\n- `DENIED_DIRS`: Semicolon-separated list of denied directories\n- `RECURSIVE`: When set to \"true\", all subdirectories of allowed directories are also allowed\n\nExisting command-line argument functionality would be maintained for backward compatibility.\n\n## Benefits\n\n1. **Improved Readability**: Complex directory configurations can be expressed more cleanly\n2. **Easier Management**: Multiple directories can be configured in a single line with semicolon separators\n3. **Reusability**: Environment variables can be easily reused in scripts or Docker configurations\n4. **Backward Compatibility**: Existing command-line argument approach continues to work\n\n## Implementation Example\n\nHere's an example of changes to the index.ts file:\n\n```typescript\n// Load settings from environment variables\nfunction parseDirectories(envVarValue: string | undefined): string[] {\n  if (!envVarValue) return [];\n  return envVarValue\n    .split(';')\n    .map((dir) => dir.trim())\n    .filter(Boolean);\n}\n\n// Get settings from environment variables\nconst envAllowedDirs = parseDirectories(process.env.ALLOWED_DIRS);\nconst envAllowedReadOnlyDirs = parseDirectories(process.env.ALLOWED_READONLY_DIRS);\nconst envDeniedDirs = parseDirectories(process.env.DENIED_DIRS);\nconst envRecursive = process.env.RECURSIVE === 'true';\n\n// Parse command-line arguments\nconst args = process.argv.slice(2);\nif (args.length === 0 && envAllowedDirs.length === 0 && envAllowedReadOnlyDirs.length === 0) {\n  console.error(\n    'Usage: mcp-server-filesystem [options] <allowed_directory> [additional_directories...]'\n  );\n  // ... existing help text ...\n  console.error('');\n  console.error('Configuration via environment variables:');\n  console.error('  ALLOWED_DIRS: Semicolon-separated list of allowed directories');\n  console.error(\n    '  ALLOWED_READONLY_DIRS: Semicolon-separated list of read-only allowed directories'\n  );\n  console.error('  DENIED_DIRS: Semicolon-separated list of denied directories');\n  console.error(\n    '  RECURSIVE: When set to \"true\", all subdirectories of allowed directories are also allowed'\n  );\n  console.error('  Example:');\n  console.error(\n    '    ALLOWED_DIRS=\"/home/user;/home/user/projects\" DENIED_DIRS=\"/home/user/.ssh;/home/user/.config\" RECURSIVE=\"true\" mcp-server-filesystem'\n  );\n  process.exit(1);\n}\n```\n\n## Usage Example\n\nExample in mcp.json file:\n\n```json\n{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/filesystem/dist/index.js\"],\n      \"env\": {\n        \"ALLOWED_DIRS\": \"/home/user\",\n        \"ALLOWED_READONLY_DIRS\": \"/home/user/Documents;/home/user/Library/Mobile Documents/com~apple~CloudDocs\",\n        \"DENIED_DIRS\": \"/home/user/.ssh;/home/user/.config;/home/user/.local;/home/user/.cache;/home/user/.npm;/home/user/.yarn;/home/user/.pnpm;/home/user/.cargo;/Volumes/BackUp\",\n        \"RECURSIVE\": \"true\"\n      }\n    }\n  }\n}\n```\n\nI believe this enhancement will significantly improve the usability of the MCP Filesystem Server.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1879/reactions",
        "total_count": 3,
        "+1": 3,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1869",
      "id": 3080556710,
      "node_id": "I_kwDONRaG_863nZCm",
      "number": 1869,
      "title": "Filesystem MCP server modified .env without permission and did not back it up",
      "user": {
        "login": "milisp",
        "id": 106554029,
        "node_id": "U_kgDOBlnirQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/106554029?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/milisp",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2025-05-21T15:05:05Z",
      "updated_at": "2025-07-28T02:35:22Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nClaude Desktop (via the Filesystem MCP server) modified my .env file without consent when I asked a question about a Docker-related ConnectionRefusedError. It tried to “fix” a Tortoise ORM connection string issue by overwriting my file using the write_file command. However, it didn’t even read the .env file before modifying it, nor did it back it up. This led to loss of important config data I hadn’t committed.\n\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Ask Claude (with the MCP server using filesystem) a question involving Docker and a Tortoise ORM connection string error.\n    \n2. Claude tries to “fix” it automatically using write_file, modifying .env directly.\n    \n3. File is overwritten without confirmation or backup.\n\n**Expected behavior**\nClaude or the MCP server should:\n\n- Never modify important user files like .env without explicit confirmation.\n    \n- At minimum, back up the original file before overwriting.\n\n**Logs**\nError I originally asked about:\n\n```\n/Users/gpt/projects/rustapp/mcp-linker-api/docker-compose.yml \nConnectionRefusedError: [Errno 111] Connection refused\n```\n\nClaude’s attempted “fix”:\n\n```\n# Creates a .env file with a guessed Tortoise ORM connection string\n```\n\n**Additional context**\nThis issue could lead to silent data loss in projects where .env is not committed. Claude needs user confirmation step before file operations via MCP servers like filesystem.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1869/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1868",
      "id": 3080284489,
      "node_id": "I_kwDONRaG_863mWlJ",
      "number": 1868,
      "title": "mcp-server-git: when performing git-add, it seems that git config is ignored",
      "user": {
        "login": "AlbertoGiraldo",
        "id": 24738419,
        "node_id": "MDQ6VXNlcjI0NzM4NDE5",
        "avatar_url": "https://avatars.githubusercontent.com/u/24738419?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/AlbertoGiraldo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-21T13:40:07Z",
      "updated_at": "2025-05-21T13:42:45Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Desciption**\nWhen performing the `git add` command from terminal line, the changes are correctly identified and added for future commit. If a single line is added to a file, only that line is recognised as a change and added for later commit. \nHowever if the git-add is performed via the mcp-server-git, all the line endings are modified (in particular, a special character ^M is added at the end of each line of the added files). My guess is that Mcp-server-git is not taking into account the git config in my machine (in particular, the config that avoids bad behaviours with line endings, `git config --global core.autocrlf true`).\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. I am using Windows 11 Enterprise (version 24H2). In order to test the MCP server, I installed it with Python (pip install mcp-server-git) and I use it from the GitHub Copilot plugin inside IntelliJ (version of the plugin 1.5.44.10400-243). All this stack just to simplify my activities, it should not affect the result with the MCP server itself.\n2. I made a change (edited one line) in the codebase then asked Copilot to perform a git-add, the proposed command is a simple git add with the following parameters:\n`{\n  \"files\": [\n    \"src/main/resources/application.properties\"\n  ],\n  \"repo_path\": \"c:\\\\my_project\"\n}`\nHowever, when checking with an external tool what has been done (SourceTree, in my case) I see that all the lines have actually changed. Looking further, I see that all the lines now end with \"^M\" character\n\n3. Unstaging the file then doing the same `git add src/main/resources/application.properties` from the terminal, only my edited line is recognised as changed and staged for commit, as it should be\n\n**Expected behavior**\nThe mcp-server-git/mcp-server-git_git_add command should perform exactly the same as the git add command in the terminal. In particular, I expect the MCP server command to use my git config\n\n**Logs**\nI don't have useful logs and actually I'm not able to collect them. If needed, please explain how I can collect them.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1868/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1847",
      "id": 3075822484,
      "node_id": "I_kwDONRaG_863VVOU",
      "number": 1847,
      "title": "McpError does not support string messages as input",
      "user": {
        "login": "ekleezg",
        "id": 59592595,
        "node_id": "MDQ6VXNlcjU5NTkyNTk1",
        "avatar_url": "https://avatars.githubusercontent.com/u/59592595?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ekleezg",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-20T06:30:02Z",
      "updated_at": "2025-05-20T06:30:02Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nMcpError does not properly handle string messages passed during initialization.\n\n**To Reproduce**\nSteps to reproduce the behavior:\nCalling `raise McpError(\"Error message\")` results in an AttributeError, because the string object does not have a `message` attribute.\n\n```\nPython 3.11.9 (main, May 12 2025, 20:04:08) [GCC 13.3.0] on linux\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n>>> from mcp.shared.exceptions import McpError\n>>> raise McpError(\"Error\")\nTraceback (most recent call last):\n  File \"<stdin>\", line 1, in <module>\n  File \".pyenv/versions/atheris-env/lib/python3.11/site-packages/mcp/shared/exceptions.py\", line 13, in __init__\n    super().__init__(error.message)\n                     ^^^^^^^^^^^^^\nAttributeError: 'str' object has no attribute 'message'\n```\n\nThere are multiple call sites in the MCP server codebase where McpError is raised with a plain string argument, leading to this error.\n\n**Expected behavior**\nAccording to the MCP SDK specification, McpError is expected to receive an `ErrorData` object, which includes a `message` attribute. \n\nI believe either the SDK specification or its usage should be corrected:\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1847/reactions",
        "total_count": 3,
        "+1": 3,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1846",
      "id": 3075639126,
      "node_id": "I_kwDONRaG_863UodW",
      "number": 1846,
      "title": "error when using path variables in memory file configuration",
      "user": {
        "login": "KingOfTac",
        "id": 32497422,
        "node_id": "MDQ6VXNlcjMyNDk3NDIy",
        "avatar_url": "https://avatars.githubusercontent.com/u/32497422?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/KingOfTac",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-05-20T04:49:41Z",
      "updated_at": "2025-06-04T09:00:15Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\n`Knowledge Graph Memory Server` produces an error when using vscode's path variables in the memory file location configuration.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Use `${workspaceFolder}/.mcp/memory.json` for the `env.MEMORY_FILE_PATH` setting\n2. Try to use any commands from the knowledge graph server\n\n**Expected behavior**\nThe knowledge graph server should be able to resolve the path variables and use the memory file configured at that location.\n\n**Logs**\n![Image](https://github.com/user-attachments/assets/2e9239da-2c32-48b1-9bfc-6b7a7ca0750f)\n\n**Additional context**\nhttps://code.visualstudio.com/docs/reference/variables-reference",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1846/reactions",
        "total_count": 3,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 1,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1836",
      "id": 3074171669,
      "node_id": "I_kwDONRaG_863PCMV",
      "number": 1836,
      "title": "No Module Error - Adding MCP server inside Claude Desktop",
      "user": {
        "login": "aayushrajj",
        "id": 53904167,
        "node_id": "MDQ6VXNlcjUzOTA0MTY3",
        "avatar_url": "https://avatars.githubusercontent.com/u/53904167?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/aayushrajj",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 13,
      "created_at": "2025-05-19T15:06:41Z",
      "updated_at": "2025-08-20T13:22:28Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "I am trying to add a MCP server in claude desktop. After properly installing required packages, still getting errors.\nAlso, I have added a simple MCP server earlier in the claude desktop that is running properly.\n\nSteps that I did for creating and adding the server to claude destop-\n\n- `uv add \"mcp[cli]\"` - To add mcp cli in the project folder\n- `uv pip install -r requirements.txt` - to install all the required packages\n- `uv run mcp install main.py` - to add the server inside claude desktop\n\nI am seeing a successful installation message in the terminal, but when I open claude desktop it shows the server fails to run due to a missing module error in the error logs.\n\nERROR LOGS - \n`2025-05-19T13:44:08.019Z [TestServer] [info] Initializing server...`\n`2025-05-19T13:44:08.050Z [TestServer] [info] Server started and connected successfully`\n`2025-05-19T13:44:08.052Z [TestServer] [info] Message from client: {\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"claude-ai\",\"version\":\"0.1.0\"}},\"jsonrpc\":\"2.0\",\"id\":0}`\n`Failed to run server: No module named 'fitz'`\n`2025-05-19T13:44:09.663Z [TestServer] [info] Server transport closed`\n`2025-05-19T13:44:09.664Z [TestServer] [info] Client transport closed`\n`2025-05-19T13:44:09.664Z [TestServer] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log.`\n`2025-05-19T13:44:09.664Z [TestServer] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) {\"context\":\"connection\"}`\n`2025-05-19T13:44:09.664Z [TestServer] [info] Client transport closed`\n\n\nCan anyone please help on what I might be doing wrong for this one?\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1836/reactions",
        "total_count": 1,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 1
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1819",
      "id": 3070776147,
      "node_id": "I_kwDONRaG_863CFNT",
      "number": 1819,
      "title": "Memory server race condition causes corrupted JSON",
      "user": {
        "login": "EllipticElysium",
        "id": 67951653,
        "node_id": "MDQ6VXNlcjY3OTUxNjUz",
        "avatar_url": "https://avatars.githubusercontent.com/u/67951653?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/EllipticElysium",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-17T13:27:31Z",
      "updated_at": "2025-05-17T13:27:31Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\ncalling tool multiple times can cause the json file to become corrupted due to writing malformed data\n\n**To Reproduce**\nSteps to reproduce the behavior:\ntrigger multiple calls to Memory from a single LLM response (e.g. create entity, delete observation, add observation, and create relation)\n\n**Expected behavior**\nIt should not be possible for the tool to write corrupted data to fle.\n\n_Ideally_, it would correctly handle concurrent writes to ensure atomic operations\n\n_minimally_, it would validate any data before being written, to ensure that malformed data is not saved and it fails gracefully.\n\n\n**Additional context**\nCurrently This has to be resolved manually every time, once the file is corrupted it is not possible for the tool to recover/fix by itself, every operation fails\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1819/reactions",
        "total_count": 1,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 1
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1818",
      "id": 3070726651,
      "node_id": "I_kwDONRaG_863B5H7",
      "number": 1818,
      "title": "search_nodes fails with non-empty query",
      "user": {
        "login": "ghost",
        "id": 10137,
        "node_id": "MDQ6VXNlcjEwMTM3",
        "avatar_url": "https://avatars.githubusercontent.com/u/10137?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ghost",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-17T12:12:22Z",
      "updated_at": "2025-05-17T12:45:55Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "- Empty query (\"\") works and returns all entities/relations\n\n- Non-empty query fails with the exact error described in the bug report: \"Cannot read properties of undefined (reading 'some')\"\n\nEnvironment:\n\nWindows 10, Visual Studio Code 1.100.2 with Cline extension 3.16, Python 3.12.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1818/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1809",
      "id": 3068416555,
      "node_id": "I_kwDONRaG_8625FIr",
      "number": 1809,
      "title": "error: Failed to fetch: `https://pypi.org/simple/mcp-server-fetch/`",
      "user": {
        "login": "carrot-codeing",
        "id": 84440468,
        "node_id": "MDQ6VXNlcjg0NDQwNDY4",
        "avatar_url": "https://avatars.githubusercontent.com/u/84440468?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/carrot-codeing",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-05-16T09:05:04Z",
      "updated_at": "2025-05-16T15:46:38Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nfailed to connect to the mcp server fetch\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1.  the config in vscode setting\n```\n\"mcp\": {\n        \n        \"inputs\": [],\n        \"servers\": {\n            \"mcp-server-time\": {\n                \"command\": \"python\",\n                \"args\": [\n                    \"-m\",\n                    \"mcp_server_time\",\n                    \"--local-timezone=America/Los_Angeles\"\n                ],\n                \"env\": {}\n            },\n            \"fetch\": {\n                \"type\": \"stdio\",\n                \"command\": \"uvx\",\n                \"args\": [\"mcp-server-fetch\"]\n            }\n        }\n    }\n```\n2. using the chat to fetch content\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Logs**\nIf applicable, add logs to help explain your problem.\n```\n Waiting for server to respond to `initialize` request...\n2025-05-16 16:49:29.452 [info] Waiting for server to respond to `initialize` request...\n2025-05-16 16:49:34.448 [info] Waiting for server to respond to `initialize` request...\n2025-05-16 16:49:39.444 [info] Waiting for server to respond to `initialize` request...\n2025-05-16 16:49:44.444 [info] Waiting for server to respond to `initialize` request...\n2025-05-16 16:50:16.737 [warning] [server stderr] error: Failed to fetch: `https://pypi.org/simple/mcp-server-fetch/`\n2025-05-16 16:50:16.738 [warning] [server stderr]   Caused by: Request failed after 3 retries\n2025-05-16 16:50:16.741 [warning] [server stderr]   Caused by: error sending request for url (https://pypi.org/simple/mcp-server-fetch/)\n2025-05-16 16:50:16.741 [warning] [server stderr]   Caused by: operation timed out\n2025-05-16 16:50:16.744 [info] Connection state: Error Process exited with code 2\n2025-05-16 16:50:16.744 [error] Server exited before responding to `initialize` request.\n```\n**Additional context**\n\n![Image](https://github.com/user-attachments/assets/15d1b5d1-836b-49bf-b92f-57f1ff6f48bb)\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1809/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1782",
      "id": 3062632158,
      "node_id": "I_kwDONRaG_862jA7e",
      "number": 1782,
      "title": "Request for OpenObserve Support as Model Context Protocol (MCP) Servers",
      "user": {
        "login": "avinashkurup",
        "id": 681657,
        "node_id": "MDQ6VXNlcjY4MTY1Nw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/681657?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/avinashkurup",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-14T10:29:09Z",
      "updated_at": "2025-05-14T10:29:09Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Hi there,\n\n**Is your feature request related to a problem? Please describe.**\n\nI would like to know if there are any future plans of  integrating OpenObserve with Model Context Protocol (MCP) servers, lack of which makes it hard to monitor and analyze data in real-time.\n\n**Describe the solution you'd like**\n\nI’d like to see OpenObserve with support MCP servers, either through a dedicated server or documentation on how to integrate them easily for better observability.\n\n**Describe alternatives you've considered**\n\nI’ve considered building custom middleware to connect OpenObserve with MCP servers, but having official support would make it much easier. Also please point me to any existing OpenObserve MCP servers which I might have missed out.\n\n**Additional context**\n\nIntegrating OpenObserve with MCP servers would make it easier to monitor data from machine learning models and other tools in real-time.\n\nRegards,",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1782/reactions",
        "total_count": 15,
        "+1": 15,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1770",
      "id": 3061551777,
      "node_id": "I_kwDONRaG_862e5Kh",
      "number": 1770,
      "title": "MCP Filesystem breaks when there is hyphen `-` on the path",
      "user": {
        "login": "ltroya-as",
        "id": 84338290,
        "node_id": "MDQ6VXNlcjg0MzM4Mjkw",
        "avatar_url": "https://avatars.githubusercontent.com/u/84338290?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ltroya-as",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-14T01:16:38Z",
      "updated_at": "2025-07-28T02:35:21Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nI encountered this error while attempting to test the MCP filesystem. The path to which I gave the MCP Filesystem access contains a hyphen `-`, which causes the MCP Filesystem to throw an error\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Add your MCP Filesystem to your Claude Desktop\n2. Use a username with an hyphen (`-`) on the path. E.g, `Users/luis-troya/Desktop`.\n3. After restarting Claude Desktop, you will see the error thrown by the MCP Filesystem.\n\nMy current config:\n```\n\"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-filesystem\",\n        \"/Users/luis-troya/Code\"\n      ]\n    }\n```\n\n**Expected behavior**\nI expect the Claude Desktop to load the MCP Filesystem server without an error.\n\n**Logs**\n```\n2025-05-14T01:15:27.763Z [filesystem] [info] Initializing server...\n2025-05-14T01:15:27.814Z [filesystem] [info] Server started and connected successfully\n2025-05-14T01:15:27.816Z [filesystem] [info] Message from client: {\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"claude-ai\",\"version\":\"0.1.0\"}},\"jsonrpc\":\"2.0\",\"id\":0}\ncommand not found: /Users/luis-troya/Code\n2025-05-14T01:15:28.356Z [filesystem] [info] Server transport closed\n2025-05-14T01:15:28.357Z [filesystem] [info] Client transport closed\n2025-05-14T01:15:28.357Z [filesystem] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log.\n2025-05-14T01:15:28.357Z [filesystem] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) {\"context\":\"connection\"}\n2025-05-14T01:15:28.357Z [filesystem] [info] Client transport closed\n```\n\nNotes:\nIf I remove the hyphen on the path of my configuration I receive the following error which makes sense to me:\n```\n2025-05-14T01:18:47.990Z [filesystem] [info] Initializing server...\n2025-05-14T01:18:48.040Z [filesystem] [info] Server started and connected successfully\n2025-05-14T01:18:48.041Z [filesystem] [info] Message from client: {\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"claude-ai\",\"version\":\"0.1.0\"}},\"jsonrpc\":\"2.0\",\"id\":0}\nENOENT: no such file or directory, stat '/Users/luistroya/Code'\n2025-05-14T01:18:48.468Z [filesystem] [info] Server transport closed\n2025-05-14T01:18:48.468Z [filesystem] [info] Client transport closed\n2025-05-14T01:18:48.468Z [filesystem] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log.\n2025-05-14T01:18:48.468Z [filesystem] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) {\"context\":\"connection\"}\n2025-05-14T01:18:48.468Z [filesystem] [info] Client transport closed\n```",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1770/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1759",
      "id": 3060530196,
      "node_id": "I_kwDONRaG_862a_wU",
      "number": 1759,
      "title": "add new tool git-status and support for --require-clean-branch on filesystem server",
      "user": {
        "login": "rednap",
        "id": 45494929,
        "node_id": "MDQ6VXNlcjQ1NDk0OTI5",
        "avatar_url": "https://avatars.githubusercontent.com/u/45494929?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/rednap",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8359493992,
          "node_id": "LA_kwDONRaG_88AAAAB8kPBaA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-git",
          "name": "server-git",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Git MCP server - src/git"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-13T15:51:33Z",
      "updated_at": "2025-07-28T02:36:32Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\none of the main concerns when using the filesystem server is untracked changes to files/directories. this feature allows us to ensure the files being changed are in a git repo with a clean branch before making changes.\n\n**Describe the solution you'd like**\na new tool `git-status` that can check the working dir git status and return \"clean\" or \"not clean\" with a new flag `--require-clean-branch`. when set filesystem will require a clean git branch when making changes to files/dirs.\n\n**Describe alternatives you've considered**\nAlternatives right now: don't prompt it to do work unless you've manually checked the dir/repo status first. not great. i could ensure it's only working in git repos now with a more fine-tuned configuration.  ie: allow access to less directories, but nothing prevents changes to files not yet committed.\n\n**Additional context**\nthis would be gold.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1759/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1752",
      "id": 3058328788,
      "node_id": "I_kwDONRaG_862SmTU",
      "number": 1752,
      "title": "MacOS Copilot Visual Studio Code Agent Mode - sequencialthinking",
      "user": {
        "login": "deividfortuna",
        "id": 2691587,
        "node_id": "MDQ6VXNlcjI2OTE1ODc=",
        "avatar_url": "https://avatars.githubusercontent.com/u/2691587?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/deividfortuna",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 6,
      "created_at": "2025-05-12T22:52:57Z",
      "updated_at": "2025-05-15T21:53:49Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nEvery command that triggers sequencialthinking mcp is returning error.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Copilot in Agent mode do any query with `#sequentialthinking` eg. `#sequentialthinking how to create a new react project?`\n\n**Expected behavior**\nThink, create a plan and then print out instructions about how to create a new react project.\n\n**Logs**\n```\nGitHub Copilot\n2025-05-13 15:53:38.039 [warning] Tool bb7_sequentialthinking failed validation: object has unsupported schema keyword 'minimum'\n2025-05-13 15:53:38.039 [warning] Tool bb7_sequentialthinking failed validation: object has unsupported schema keyword 'minimum'\n2025-05-13 15:53:38.039 [warning] Tool bb7_sequentialthinking failed validation: object has unsupported schema keyword 'minimum'\n2025-05-13 15:53:38.039 [warning] Tool bb7_sequentialthinking failed validation: object has unsupported schema keyword 'minimum'\n2025-05-13 15:53:38.447 [info] Request ID for failed request: 93b7029a-bd34-462b-81b4-29b0ac6dac45\n2025-05-13 15:53:38.448 [error] Request Failed: 400 Bad Request\n2025-05-13 15:53:38.451 [error] Error: Failed to compute args for tool: \"bb7_sequentialthinking\" (at tsx element Ok > YM > mde > jSe > tS > Cre > rr)\n```\n\n**Additional context**\nThis is probably not an issue with the MCP itself since it wasn't changed in a while, but likely something changed with copilot which might require changes in the MCP? \n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1752/reactions",
        "total_count": 7,
        "+1": 7,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1748",
      "id": 3057133015,
      "node_id": "I_kwDONRaG_862OCXX",
      "number": 1748,
      "title": "MacOS Claude Desktop - 'Server transport closed unexpectedly, this is likely due to the process exiting early' error",
      "user": {
        "login": "srustamo",
        "id": 749813,
        "node_id": "MDQ6VXNlcjc0OTgxMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/749813?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/srustamo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 7,
      "created_at": "2025-05-12T14:14:07Z",
      "updated_at": "2025-07-04T07:06:22Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nMCP Server starts fine\nClaude Desktop (the client) connects and sends an \"initialize\" message\nImmediately after, the connection drops\n    Either Claude Desktop crashes / exits\n    Or the server crashes right after receiving the message\nServer tries to write back → EPIPE error (because client connection is already closed)\nEverything shuts down cleanly but prematurely\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Install MCP server with `﻿﻿﻿npm i @modelcontextprotocol/server-filesystem` \n\n**Expected behavior**\nClaude Desktop connects to sever successfully. \n\n**Logs**\n2025-05-12T13:59:25.751Z [info] [filesystem] Initializing server...\n2025-05-12T13:59:25.773Z [info] [filesystem] Server started and connected successfully\n2025-05-12T13:59:25.783Z [info] [filesystem] Message from client: {\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"claude-ai\",\"version\":\"0.1.0\"}},\"jsonrpc\":\"2.0\",\"id\":0}\n2025-05-12T13:59:25.784Z [error] [filesystem] write EPIPE\n2025-05-12T13:59:25.786Z [info] [filesystem] Server transport closed\n2025-05-12T13:59:25.786Z [info] [filesystem] Client transport closed\n2025-05-12T13:59:25.787Z [info] [filesystem] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log.\n2025-05-12T13:59:25.787Z [error] [filesystem] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging)\n2025-05-12T13:59:25.787Z [info] [filesystem] Client transport closed\n2025-05-12T14:01:11.577Z [info] [filesystem] Initializing server...\n2025-05-12T14:01:11.591Z [info] [filesystem] Server started and connected successfully\n2025-05-12T14:01:11.596Z [info] [filesystem] Server transport closed\n2025-05-12T14:01:11.596Z [info] [filesystem] Client transport closed\n2025-05-12T14:01:11.596Z [info] [filesystem] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log.\n2025-05-12T14:01:11.596Z [error] [filesystem] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging)\n2025-05-12T14:01:11.597Z [info] [filesystem] Client transport closed\n\n\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1748/reactions",
        "total_count": 14,
        "+1": 14,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1738",
      "id": 3055390933,
      "node_id": "I_kwDONRaG_862HZDV",
      "number": 1738,
      "title": "[Python] Subprocess is take too long for one process.",
      "user": {
        "login": "waramity",
        "id": 33018896,
        "node_id": "MDQ6VXNlcjMzMDE4ODk2",
        "avatar_url": "https://avatars.githubusercontent.com/u/33018896?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/waramity",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-12T01:30:49Z",
      "updated_at": "2025-05-12T01:30:49Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nI have problem to run cmd command with Subprocess. I tried to run ffmpeg on python with Subprocess. I have problem to run on Claude desktop because it's take too long. I run ffmpeg script under 5 seconds for normal trim video, but it's like took forever on Claude desktop. I tried to run ffmpeg from external library or external file or script, it doesn't work, I think it's just Subprocess that have problem with MCP.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1738/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1735",
      "id": 3055067874,
      "node_id": "I_kwDONRaG_862GKLi",
      "number": 1735,
      "title": "Can I connect to multiple prebuilt MCP servers and use their tools in my own MCP server?",
      "user": {
        "login": "ITRSEO",
        "id": 184949715,
        "node_id": "U_kgDOCwYb0w",
        "avatar_url": "https://avatars.githubusercontent.com/u/184949715?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ITRSEO",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-11T15:57:17Z",
      "updated_at": "2025-05-11T15:57:17Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": null,
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1735/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1725",
      "id": 3053984957,
      "node_id": "I_kwDONRaG_862CBy9",
      "number": 1725,
      "title": "Cross-platform filesystem path configuration for MCP Server Filesystem",
      "user": {
        "login": "dinhquyf0",
        "id": 14790204,
        "node_id": "MDQ6VXNlcjE0NzkwMjA0",
        "avatar_url": "https://avatars.githubusercontent.com/u/14790204?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/dinhquyf0",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-10T10:02:51Z",
      "updated_at": "2025-07-28T02:35:21Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Problem\nWhen using the MCP Server Filesystem on both macOS and Windows platforms, the settings synchronization mechanism in VS Code causes issues with filesystem paths. Every time settings are synchronized, the path configured for one platform overwrites the other, causing the MCP filesystem server to stop working on the other platform.\n\n## Background\nIn the current implementation, filesystem paths are directly configured in the VS Code settings.json file like this:\n\n```json\n\"mcp\": {\n  \"servers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-filesystem\",\n        \"${input:file_system_path}\"  // Or hardcoded path like \"C:/Projects\"\n      ]\n    }\n  },\n  \"inputs\": [\n    {\n      \"id\": \"file_system_path\",\n      \"type\": \"promptString\",\n      \"description\": \"File System Path\"\n    }\n  ]\n}\n```\n\nThe issue occurs because Windows paths (e.g., \"C:\\\\Projects\") and macOS paths (e.g., \"/Users/username/Projects\") are incompatible, and when settings sync happens, one overwrites the other.\n\n## Proposed Solution\nImplement a platform-specific configuration option for filesystem paths in the MCP Server Filesystem. Some options:\n\n1. **Platform-specific inputs**: Allow different input variables for different platforms:\n```json\n\"mcp\": {\n  \"inputs\": [\n    {\n      \"id\": \"file_system_path_windows\",\n      \"type\": \"promptString\",\n      \"description\": \"File System Path (Windows)\"\n    },\n    {\n      \"id\": \"file_system_path_macos\",\n      \"type\": \"promptString\", \n      \"description\": \"File System Path (macOS)\"\n    }\n  ],\n  \"servers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@modelcontextprotocol/server-filesystem\",\n        \"${os:windows?input:file_system_path_windows:input:file_system_path_macos}\"\n      ]\n    }\n  }\n}\n```\n\n2. **Automatic platform detection**: Modify the filesystem server to automatically handle platform-specific paths:\n```javascript\n// In server code\nconst platformPath = os.platform() === 'win32' \n  ? process.env.WINDOWS_PATH \n  : process.env.MACOS_PATH;\n```\n\n3. **VS Code conditional settings**: Support a conditional syntax or settings overrides based on platform.\n\n## Benefits\n- Users can maintain a single synchronized settings.json that works on all platforms\n- No more broken MCP filesystem server on platform switching\n- Smoother cross-platform development experience\n\n## Affected Components\n- MCP Server Filesystem\n- VS Code settings handling\n\nWould appreciate if this could be considered for an upcoming release. This would greatly improve the experience for developers working across multiple platforms.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1725/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1682",
      "id": 3042366382,
      "node_id": "I_kwDONRaG_861VtOu",
      "number": 1682,
      "title": "[Git MCP] Blob or Tree named 'XXX.py^0' not found",
      "user": {
        "login": "JavieHush",
        "id": 67868978,
        "node_id": "MDQ6VXNlcjY3ODY4OTc4",
        "avatar_url": "https://avatars.githubusercontent.com/u/67868978?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/JavieHush",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-06T10:33:20Z",
      "updated_at": "2025-05-06T10:34:28Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nWhen ask LLM to use `git_show` tool to get some infos, get response like `Blob or Tree named 'XXX.py^0' not found`\n* parameter\n```json\n{\n  \"repo_path\": \"/home/ahigh/work/Worker3/Workers/message_send\",\n  \"revision\": \"HEAD:logic/position_realtime_infos.py\"\n}\n```\n* response from Git MCP\n```bash\nBlob or Tree named 'position_realtime_infos.py^0' not found\n```\n\n**Expected behavior**\nshow correct infos\n\nAnyone encounter this? ：）\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1682/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1679",
      "id": 3041697664,
      "node_id": "I_kwDONRaG_861TJ-A",
      "number": 1679,
      "title": "MCP Servers Not Detected on Initial Runs of main.py; Tools Recognized Only After Multiple Restarts",
      "user": {
        "login": "mrzz222",
        "id": 203747666,
        "node_id": "U_kgDODCTxUg",
        "avatar_url": "https://avatars.githubusercontent.com/u/203747666?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/mrzz222",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-05-06T06:46:27Z",
      "updated_at": "2025-05-06T06:46:27Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Describe the bug\nWhen running main.py, the MCP client frequently fails to detect and connect to available MCP servers on the first few attempts. The tool discovery and response handling only begin working correctly after restarting the script 3–4 times. This seems to indicate a race condition or delay in server registration or discovery.\n\nTo Reproduce\nSteps to reproduce the behavior:\n\nStart the MCP servers.\n\nImmediately run main.py.\n\nObserve that no tools are identified or invoked.\n\nStop main.py and restart it.\n\nRepeat 3–4 times until it begins identifying tools and responding as expected.\n\nExpected behavior\nThe MCP client should detect available MCP servers and tools correctly on the first run of main.py, assuming the servers are already running.\n\nIM GETTING RESPONSE FROM LLM IT CANT IDENTIFY TOOLS THAT ARE UN SERVER JSON FILE BUT AFTER SOME RETRIES LIKE JUST RUNNING AND EXITING MAIN.PY RANDOMLY THE SERVERS ARE IDENTIFIED AND IT WORKS PROPERLY\n\n\n\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1679/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1624",
      "id": 3028296357,
      "node_id": "I_kwDONRaG_860gCKl",
      "number": 1624,
      "title": "[bug] mcp-server-fetch tool json schema  can‘t use in Google Gemini 2.5 pro",
      "user": {
        "login": "murphyXu",
        "id": 8130768,
        "node_id": "MDQ6VXNlcjgxMzA3Njg=",
        "avatar_url": "https://avatars.githubusercontent.com/u/8130768?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/murphyXu",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359493310,
          "node_id": "LA_kwDONRaG_88AAAAB8kO-vg",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-fetch",
          "name": "server-fetch",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Fetch MCP server - src/fetch"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-04-29T13:12:56Z",
      "updated_at": "2025-06-17T06:24:10Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "The parameters of the fetch tool include exclusiveMaximum and exclusiveMinimum in the schema. However, Google Gemini 2.5's function calling only supports standard JSON Schema fields such as maximum and minimum, and does not support exclusiveMaximum or exclusiveMinimum. This incompatibility leads to errors. Please fix this issue.\n\n\nerror info \n400 { \"error\": { \"code\": 400, \"message\": \"Invalid JSON payload received. Unknown name \\\"exclusiveMaximum\\\" at 'tools[0].function_declarations[0].parameters.properties[1].value': Cannot find field.\\nInvalid JSON payload received. Unknown name \\\"exclusiveMinimum\\\" at 'tools[0].function_declarations[0].parameters.properties[1].value': Cannot find field.\", \"status\": \"INVALID_ARGUMENT\", \"details\": [ { \"@type\": \"type.googleapis.com/google.rpc.BadRequest\", \"fieldViolations\": [ { \"field\": \"tools[0].function_declarations[0].parameters.properties[1].value\", \"description\": \"Invalid JSON payload received. Unknown name \\\"exclusiveMaximum\\\" at 'tools[0].function_declarations[0].parameters.properties[1].value': Cannot find field.\" }, { \"field\": \"tools[0].function_declarations[0].parameters.properties[1].value\", \"description\": \"Invalid JSON payload received. Unknown name \\\"exclusiveMinimum\\\" at 'tools[0].function_declarations[0].parameters.properties[1].value': Cannot find field.\" } ] } ] } }\n\nfetch tool\n\"tools\": [\n    {\n      \"displayTitle\": \"url_fetch fetch\",\n      \"function\": {\n        \"description\": \"Fetches a URL from the internet and optionally extracts its contents as markdown.\\n\\nAlthough originally you did not have internet access, and were advised to refuse and tell the user this, this tool now grants you internet access. Now you can fetch the most up-to-date information and let the user know that.\",\n        \"name\": \"fetch\",\n        \"parameters\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"url\": {\n              \"description\": \"URL to fetch\",\n              \"format\": \"uri\",\n              \"minLength\": 1,\n              \"title\": \"Url\",\n              \"type\": \"string\"\n            },\n            \"max_length\": {\n              \"default\": 5000,\n              \"description\": \"Maximum number of characters to return.\",\n              \"exclusiveMaximum\": 1000000,\n              \"exclusiveMinimum\": 0,\n              \"title\": \"Max Length\",\n              \"type\": \"integer\"\n            },\n            \"start_index\": {\n              \"default\": 0,\n              \"description\": \"On return output starting at this character index, useful if a previous fetch was truncated and more context is required.\",\n              \"minimum\": 0,\n              \"title\": \"Start Index\",\n              \"type\": \"integer\"\n            },\n            \"raw\": {\n              \"default\": false,\n              \"description\": \"Get the actual HTML content of the requested page, without simplification.\",\n              \"title\": \"Raw\",\n              \"type\": \"boolean\"\n            }\n          },\n          \"description\": \"Parameters for fetching a URL.\",\n          \"required\": [\n            \"url\"\n          ],\n          \"title\": \"Fetch\"\n        }\n      },\n      \"readonly\": false,\n      \"type\": \"function\",\n      \"uri\": \"mcp://url_fetch/fetch\",\n      \"group\": \"url_fetch\"\n    }\n  ]\n\nGemini 2.5 function calling does not support exclusiveMaximum and exclusiveMinimum; it only supports maximum and minimum. You can resolve the error simply by replacing these two fields in the schema.\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1624/reactions",
        "total_count": 4,
        "+1": 4,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1614",
      "id": 3024192127,
      "node_id": "I_kwDONRaG_860QYJ_",
      "number": 1614,
      "title": "[git] Get parent branch and diff since it (suggestion included)",
      "user": {
        "login": "nahoj",
        "id": 469017,
        "node_id": "MDQ6VXNlcjQ2OTAxNw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/469017?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/nahoj",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-28T08:47:06Z",
      "updated_at": "2025-04-28T08:47:06Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "I use AI to review merge requests. The assistants I use all support git natively. However, they don't know how to check all changes since the parent branch, because the \"parent branch\" is not a standard git concept.\n\nSo every time I just give the AI the parent branch name or the command to get it.\n\nIt would be nice if the git MCP offered this function.\n\nHere is the command I use; I think it is a reasonable definition of a parent branch:\n\n> Find the first commit on the current branch that is on a branch other than the current branch or any remote with the same name.\n> Print the name of any such branch.\n\n```shell\ncurrent_branch=$(git rev-parse --abbrev-ref HEAD) && \\\nfor commit in $(git rev-list HEAD); do \\\n  other_branch=$(git branch -a --contains $commit | \\\n                /usr/bin/grep -Ev -m 1 \"^[ *]*(remotes/.*/)?$current_branch$\" | \\\n                sed -r 's#^[ *]*(remotes/)?##' | \\\n                xargs); \\\n  [[ -n \"$other_branch\" ]] && echo \"$other_branch\" && break; \\\ndone\n```",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1614/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1613",
      "id": 3024187174,
      "node_id": "I_kwDONRaG_860QW8m",
      "number": 1613,
      "title": "Error starting filesystem: CodeExpectedError: Variable workspaceFolder can not be resolved. Please open a folder.",
      "user": {
        "login": "AcFV01",
        "id": 115772965,
        "node_id": "U_kgDOBuaOJQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/115772965?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/AcFV01",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 5,
      "created_at": "2025-04-28T08:45:19Z",
      "updated_at": "2025-10-13T07:46:16Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "I have already opened a folder as workspace, but the error still occurs. This is my settings.json.\n![Image](https://github.com/user-attachments/assets/6fac6a4c-cd60-46ec-a5ee-b8589db1f1d8)\nOnly when I add it in the project's .vscode/mcp.json file and replace ${workspaceFolder} with the project path does it work properly. However, I want to add it in the User Settings (JSON) file.\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1613/reactions",
        "total_count": 10,
        "+1": 10,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1611",
      "id": 3024007772,
      "node_id": "I_kwDONRaG_860PrJc",
      "number": 1611,
      "title": "Git mcp - add `remote` support",
      "user": {
        "login": "nimrodkor",
        "id": 16308767,
        "node_id": "MDQ6VXNlcjE2MzA4NzY3",
        "avatar_url": "https://avatars.githubusercontent.com/u/16308767?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/nimrodkor",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-28T07:39:52Z",
      "updated_at": "2025-04-28T07:39:52Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nI'd like the MCP server to support remote configuration, especially understanding which remote to pull from / push to etc\n\n**Describe the solution you'd like**\nLet's start by adding a tool to list the remote URLs\n\n**Describe alternatives you've considered**\nI don't want to limit it to GH / BB / GL - when I use git locally I don't care, and I don't want the entire GH MCP server just to be able to push across forks\n\n**Additional context**\nI'm open to contributing if that's an option\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1611/reactions",
        "total_count": 4,
        "+1": 4,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1600",
      "id": 3022864320,
      "node_id": "I_kwDONRaG_860LT_A",
      "number": 1600,
      "title": "Memory MCP Bug",
      "user": {
        "login": "humble-man",
        "id": 17582384,
        "node_id": "MDQ6VXNlcjE3NTgyMzg0",
        "avatar_url": "https://avatars.githubusercontent.com/u/17582384?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/humble-man",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359496976,
          "node_id": "LA_kwDONRaG_88AAAAB8kPNEA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-memory",
          "name": "server-memory",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Memory MCP server - src/memory"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2025-04-27T07:08:47Z",
      "updated_at": "2025-06-04T08:58:38Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "MEMORY_FILE_PATH configuration is invalid when Roo Cline uses Memory MCP in VsCode\n\n![Image](https://github.com/user-attachments/assets/b8cc7669-c311-44d0-85e0-b29578e1e642)",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1600/reactions",
        "total_count": 2,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 2,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1597",
      "id": 3022355723,
      "node_id": "I_kwDONRaG_860JX0L",
      "number": 1597,
      "title": "filesystem MCP server doesn't fully support filenames that contain the \"NARROW NO-BREAK SPACE\" character (U+202F)",
      "user": {
        "login": "bserridge",
        "id": 181775098,
        "node_id": "U_kgDOCtWq-g",
        "avatar_url": "https://avatars.githubusercontent.com/u/181775098?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/bserridge",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2025-04-26T22:12:48Z",
      "updated_at": "2025-08-05T09:28:32Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\n\nWhen using Claude desktop on a Mac together with the filesystem MCP server \"@modelcontextprotocol/server-filesystem\", Claude is unable to perform operations on files that contain the \"NARROW NO-BREAK SPACE\" Unicode character (U+202F). For example, in attempting to move such a file to a different directory, Claude reports back: \"encountered file access issues that prevented the direct move operation.\"\n\nRenaming the file (e.g. to replace the \"NARROW NO-BREAK SPACE\" character with a regular space character resolves the issue.\n\n**To Reproduce**\n\nMy Mac is running Sonoma OS 14.6.1 (23G93).\n\nMy claude_desktop_config.json file looks like this:\n\n{\n    \"mcpServers\": {\n      \"filesystem\": {\n        \"command\": \"npx\",\n        \"args\": [\n          \"-y\",\n          \"@modelcontextprotocol/server-filesystem\",\n          \"/Users/bserridge/Screenshots\"\n        ]\n      }\n    }\n}\n\nSteps to reproduce the behavior:\n1. Take a screenshot on the Mac; that'll generate a file with a name something like:\n\nScreenshot 2025-04-26 at 9.52.38 AM.png\n\nThe filename has several spaces in it, but the last space, right before the \"AM\", is not the usual \"SPACE\" character; rather, by default on the Mac when taking a screensho, it's the \"NARROW NO-BREAK SPACE\" character (U+202F)\n\n2. Ask Claude to move the file to a subdirectory. For example, the following two prompts reproduce the error:\n\nCan you make a new subdirectory (within Screenshots) called \"new\"?\n\nfollowed by:\n\nCould you please move the newest screenshot into the \"new\" subdirectory?\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\nI would expect the screenshot that I just took to be moved into the \"new\" subdirectory.\n\nInstead, Claude tries several times, using several different approaches, before giving up and concluding:\n\n\"I identified \"Screenshot 2025-01-18 at 11.15.43 AM.png\" as the newest file based on its filename. I attempted multiple approaches to move it, including escaped paths and programmatic methods. I successfully moved a different file (.DS_Store) to demonstrate that the file system works for files without spaces. The issue appears to be a technical limitation in how files with spaces in their names are handled.\"\n\nI can then go into the terminal and rename the file, changing only the last \"narrow\" space to a regular space, e.g.:\n\nmv Screenshot\\ 2025-04-26\\ at\\ 9.46.28 AM.png Screenshot\\ 2025-04-26\\ at\\ 9.46.28\\ AM.png\n\nAfter doing so, I can repeat the prompt and it gets executed with success, suggesting that the issue is in the handling of the \"NARROW NO-BREAK SPACE\" character.\n\n**Additional context**\nAdd any other context about the problem here.\n\nFull Claude interaction / conversation here:\n\nhttps://claude.ai/share/490e32fe-16c6-4bf3-82bb-f22d60bd015d\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1597/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1591",
      "id": 3021790245,
      "node_id": "I_kwDONRaG_860HNwl",
      "number": 1591,
      "title": "Multiple edits should start from the bottom of a file in filesystem server",
      "user": {
        "login": "phlax",
        "id": 454682,
        "node_id": "MDQ6VXNlcjQ1NDY4Mg==",
        "avatar_url": "https://avatars.githubusercontent.com/u/454682?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/phlax",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-04-26T12:10:04Z",
      "updated_at": "2025-07-28T02:35:20Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nA clear and concise description of what the bug is.\n\n\nWhen editing, the assistant frequently tries to create multiple edits, but if an edit changes the line numbering all the subsequent edits fail, and then it iterates, re-reading, trying again, often deciding that it has to just rewrite the entire file, which can be slow\n\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Request a change with multiple edits to a single file where some will change the line numbering\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\nmultiple edits to work\n\n**Logs**\nIf applicable, add logs to help explain your problem.\n\n**Additional context**\nAdd any other context about the problem here.\n\nI have found that by telling the assistant to explicitly start from the bottom it mostly works\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1591/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1590",
      "id": 3021787258,
      "node_id": "I_kwDONRaG_860HNB6",
      "number": 1590,
      "title": "Whitespace issues in filesystem server",
      "user": {
        "login": "phlax",
        "id": 454682,
        "node_id": "MDQ6VXNlcjQ1NDY4Mg==",
        "avatar_url": "https://avatars.githubusercontent.com/u/454682?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/phlax",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-26T12:06:50Z",
      "updated_at": "2025-04-26T14:46:44Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\n\nWorking with the filesystem server - the assistant constantly creates trailing whitespace\n\nMany linting tools and repos do not allow this - so then the assistant tries to clean up, often taking many iterations, and sometimes creating more issues in the process\n\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. edit/write files\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\nclean edits, or at least the option to enforce that\n\n**Logs**\nIf applicable, add logs to help explain your problem.\n\n**Additional context**\nAdd any other context about the problem here.\n\nit looks like this functionality was previously there and then was removed in https://github.com/modelcontextprotocol/servers/commit/b477af5c0404bf53d6643f73fda1e126dd27a935 - i really struggle to understand why\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1590/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1581",
      "id": 3021180059,
      "node_id": "I_kwDONRaG_860E4yb",
      "number": 1581,
      "title": "[Filesystem] Tool to copy a file",
      "user": {
        "login": "MCRicardoTorres",
        "id": 42625842,
        "node_id": "MDQ6VXNlcjQyNjI1ODQy",
        "avatar_url": "https://avatars.githubusercontent.com/u/42625842?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/MCRicardoTorres",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-25T22:57:50Z",
      "updated_at": "2025-04-26T14:46:44Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nCurrently, the agent has to read all the file and write the content in another. In large files this is taking a while.\n\n**Describe the solution you'd like**\nA tool to copy file(s) from one directory to another\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1581/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1571",
      "id": 3019099394,
      "node_id": "I_kwDONRaG_86z880C",
      "number": 1571,
      "title": "[feature] MCP for Pfsense",
      "user": {
        "login": "yuis-ice",
        "id": 24733624,
        "node_id": "MDQ6VXNlcjI0NzMzNjI0",
        "avatar_url": "https://avatars.githubusercontent.com/u/24733624?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/yuis-ice",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-25T06:17:41Z",
      "updated_at": "2025-04-25T06:17:41Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "👍 ",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1571/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1544",
      "id": 3012806440,
      "node_id": "I_kwDONRaG_86zk8co",
      "number": 1544,
      "title": "Issue with MCP Filesystem on Claude Desktop (Mac)",
      "user": {
        "login": "rodrigopardo21",
        "id": 180366607,
        "node_id": "U_kgDOCsAtDw",
        "avatar_url": "https://avatars.githubusercontent.com/u/180366607?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/rodrigopardo21",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-04-23T06:10:16Z",
      "updated_at": "2025-05-06T20:01:01Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "I installed the MCP filesystem on my Claude Desktop and it only worked after I installed Node via my terminal, following several attempts since it wouldn't run at first (I'm not a programmer). This was yesterday, but today, when I tried to have Claude summarize a PDF located in the directory where the filesystem works, Claude starts responding but then, after a few seconds, both the question and answer disappear from the chat.\nI ask again, and the same thing happens. I asked Claude why this was happening, and it denied that anything was wrong—until I shared a screenshot. Then it said the issue might be with my app, but I reinstalled it and that didn’t help.\nWhat could be causing this?\n\n<img width=\"1112\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/e9a201bd-69de-471f-88fb-cc7c61743f10\" />\n\n<img width=\"1085\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/0087e5c2-748e-4dd3-b13d-90ad391e4704\" />\n\n<img width=\"1161\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/419d96b7-2800-43dd-a94c-595328c1fc2a\" />\n\n<img width=\"1130\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/5456d2f6-0e20-4165-81b8-8b132912bb4a\" />\n\n<img width=\"1088\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/273e2427-de45-4ea7-8ede-0e2a9e118aa3\" />",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1544/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1526",
      "id": 3009622230,
      "node_id": "I_kwDONRaG_86zYzDW",
      "number": 1526,
      "title": "src/filesystem 可以支持 windows + vscode 使用",
      "user": {
        "login": "nmww",
        "id": 6917516,
        "node_id": "MDQ6VXNlcjY5MTc1MTY=",
        "avatar_url": "https://avatars.githubusercontent.com/u/6917516?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/nmww",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2025-04-22T01:41:31Z",
      "updated_at": "2025-04-26T14:48:15Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\nsrc/filesystem\n\n\n**Describe the solution you'd like**\nA clear and concise description of what you want to happen.\n希望增加已个\nsrc/filesystem 可以支持 windows + vscode 使用\n说明\n**Describe alternatives you've considered**\nA clear and concise description of any alternative solutions or features you've considered.\n\n**Additional context**\nAdd any other context or screenshots about the feature request here.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1526/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1520",
      "id": 3008615916,
      "node_id": "I_kwDONRaG_86zU9Xs",
      "number": 1520,
      "title": "mcp server url is what",
      "user": {
        "login": "yadanchina",
        "id": 42006019,
        "node_id": "MDQ6VXNlcjQyMDA2MDE5",
        "avatar_url": "https://avatars.githubusercontent.com/u/42006019?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/yadanchina",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432755,
          "node_id": "LA_kwDONRaG_88AAAABzvmeMw",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/question",
          "name": "question",
          "color": "d876e3",
          "default": true,
          "description": "Further information is requested"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-04-21T15:00:17Z",
      "updated_at": "2025-05-04T15:12:36Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "i local  npx run mcp server\ni can't know mcp server url\n\n\nwhy mcp clint  input  mcp  config ,can know mcp server url",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1520/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1501",
      "id": 3006461675,
      "node_id": "I_kwDONRaG_86zMvbr",
      "number": 1501,
      "title": "error with mcp-server-time",
      "user": {
        "login": "Amamiya23",
        "id": 73467592,
        "node_id": "MDQ6VXNlcjczNDY3NTky",
        "avatar_url": "https://avatars.githubusercontent.com/u/73467592?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Amamiya23",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359497353,
          "node_id": "LA_kwDONRaG_88AAAAB8kPOiQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-time",
          "name": "server-time",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Time MCP server - src/time"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-04-19T14:25:23Z",
      "updated_at": "2025-04-26T14:51:05Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "When I start the mcp-server-time hair service\n`uvx mcpo --port 8000 -- uvx mcp-server-time --local-timezone=America/New_York`\nreport an error.\n``\n time uvx mcpo --port 8000 -- uvx mcp-server-time --local-timezone=America/New_York\nStarting MCP OpenAPI Proxy on 0.0.0.0:8000 with command: uvx mcp-server-time --local-timezone=America/New_York\nINFO: Started server process [109656].\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)\nINFO: 222.171.7.93:27933 - “GET / HTTP/1.1” 404 Not Found\nINFO: 222.171.7.93:27933 - “GET / HTTP/1.1” 404 Not Found\nINFO: 222.171.7.93:29194 - “GET / HTTP/1.1” 404 Not Found\nINFO: 222.171.7.93:29194 - “GET / HTTP/1.1” 404 Not Found\n``\n\n![Image](https://github.com/user-attachments/assets/4d5d7e5b-c3e0-444b-b280-5b9d54c99bbe)",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1501/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1490",
      "id": 3004260653,
      "node_id": "I_kwDONRaG_86zEWEt",
      "number": 1490,
      "title": "No module named mcp_server_fetch MCP error -32000: Connection closed",
      "user": {
        "login": "hanbaoergogo",
        "id": 88611089,
        "node_id": "MDQ6VXNlcjg4NjExMDg5",
        "avatar_url": "https://avatars.githubusercontent.com/u/88611089?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/hanbaoergogo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432755,
          "node_id": "LA_kwDONRaG_88AAAABzvmeMw",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/question",
          "name": "question",
          "color": "d876e3",
          "default": true,
          "description": "Further information is requested"
        },
        "1": {
          "id": 8359493310,
          "node_id": "LA_kwDONRaG_88AAAAB8kO-vg",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-fetch",
          "name": "server-fetch",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Fetch MCP server - src/fetch"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-04-18T07:27:41Z",
      "updated_at": "2025-04-26T14:51:32Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "\"I encountered an issue with cline. \nFirst, I used npx and got the error **spawn npx ENOENT spawn npx ENOENT**. \nAfter that, I used Python to install Fetch, and the local package mcp-server-fetch 2025.4.7 was installed successfully.\n I added the following configuration in the config, but received the error C:\\Python312\\python.exe: No module named mcp_server_fetch MCP error -32000: Connection closed.\n By running python -c \"import sys; print(sys.executable)\", I confirmed that the Python interpreter causing the error is the one currently in use.\"\nThis makes me a little confused. It feels like I haven't found the corresponding interpreter.\n\n\n\n\n\n\n\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1490/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1481",
      "id": 3002925180,
      "node_id": "I_kwDONRaG_86y_QB8",
      "number": 1481,
      "title": "Memory Server not adding to JSON Array",
      "user": {
        "login": "bbarrington0099",
        "id": 108844091,
        "node_id": "U_kgDOBnzUOw",
        "avatar_url": "https://avatars.githubusercontent.com/u/108844091?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/bbarrington0099",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359496976,
          "node_id": "LA_kwDONRaG_88AAAAB8kPNEA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-memory",
          "name": "server-memory",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Memory MCP server - src/memory"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 10,
      "created_at": "2025-04-17T16:12:35Z",
      "updated_at": "2025-08-26T22:06:37Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nRunning the server locally with no changes to the repo, have env set to a custom MEMORY_FILE_PATH. I have tried starting the server with the memory.json being both an empty JSON Object and Array. When a new entity is created, it removes the existing structure of the empty file and adds a new entity, then when another entity is created it just adds a new JSON Object so there are 2 JSON Objects in the file but nothing wrapping them so the file is invalid\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Have one entity created\n2. Have a second entity created\n3. See that the .json file is errored\n\n**Expected behavior**\nI expect multiple entities to go into and be pulled from a valid JSON Array\n\n**Logs**\n{\"type\":\"entity\",\"name\":\"Brandon\",\"entityType\":\"User\",\"observations\":[\"Primary user as provided by himself.\"]}\n{\"type\":\"entity\",\"name\":\"MCP\",\"entityType\":\"Self\",\"observations\":[\"This is the self entity for the assistant, created as per server instructions.\"]}\n\n**Additional context**\nClient created to use OpenAI API, other tools are working as expected, when only one entity is present the Memory tools work as well.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1481/reactions",
        "total_count": 4,
        "+1": 3,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 1
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1479",
      "id": 3002883796,
      "node_id": "I_kwDONRaG_86y_F7U",
      "number": 1479,
      "title": "add filesystem failed on macOS —— no tools available",
      "user": {
        "login": "ranjie12345",
        "id": 38518437,
        "node_id": "MDQ6VXNlcjM4NTE4NDM3",
        "avatar_url": "https://avatars.githubusercontent.com/u/38518437?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ranjie12345",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-04-17T15:53:21Z",
      "updated_at": "2025-04-26T14:48:15Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "<img width=\"607\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/7fa60d4d-9052-43dd-abac-80b2c206ddf6\" />\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1479/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1469",
      "id": 3001525265,
      "node_id": "I_kwDONRaG_86y56QR",
      "number": 1469,
      "title": "Unable to start the MCP File System in Windows",
      "user": {
        "login": "JordiDevMX",
        "id": 40546419,
        "node_id": "MDQ6VXNlcjQwNTQ2NDE5",
        "avatar_url": "https://avatars.githubusercontent.com/u/40546419?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/JordiDevMX",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 7,
      "created_at": "2025-04-17T06:11:47Z",
      "updated_at": "2025-11-05T00:19:14Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# Filesystem Failed Error\n\nI've tried 2 ways and none of them worked out. I'd appreciate any help:\n\n![Image](https://github.com/user-attachments/assets/5a68a00e-59c3-4f73-b00d-dd5f0895ad68)\n\n![Image](https://github.com/user-attachments/assets/3db205fe-92ee-4238-b522-0c34a47eef71)\n\nI belive I have installed all I need:\n\n![Image](https://github.com/user-attachments/assets/d664df5d-ef4a-4efc-8ba4-68278fdcbf53)\n\n![Image](https://github.com/user-attachments/assets/5ea8253e-3525-4ec5-b196-a7e8cd9a4a39)\n\nAnd no, writing together my username doesn't fix the issue:\n\n![Image](https://github.com/user-attachments/assets/0936915a-f95e-4912-9ffb-487fe8c9f779)\n\n### mcp.log:\n2025-04-17T04:45:39.311Z [info] [filesystem] Initializing server...\n2025-04-17T04:45:39.332Z [info] [filesystem] Server started and connected successfully\n2025-04-17T04:45:39.334Z [info] [filesystem] Message from client: {\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"claude-ai\",\"version\":\"0.1.0\"}},\"jsonrpc\":\"2.0\",\"id\":0}\n2025-04-17T04:45:42.401Z [info] [filesystem] Server transport closed\n2025-04-17T04:45:42.401Z [info] [filesystem] Client transport closed\n2025-04-17T04:45:42.401Z [info] [filesystem] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log.\n2025-04-17T04:45:42.401Z [error] [filesystem] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging)\n2025-04-17T04:45:42.402Z [info] [filesystem] Client transport closed\n2025-04-17T04:48:30.039Z [info] [filesystem] Initializing server...\n2025-04-17T04:48:30.053Z [info] [filesystem] Server started and connected successfully\n2025-04-17T04:48:30.154Z [info] [filesystem] Message from client: {\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"claude-ai\",\"version\":\"0.1.0\"}},\"jsonrpc\":\"2.0\",\"id\":0}\n2025-04-17T04:48:30.990Z [info] [filesystem] Server transport closed\n2025-04-17T04:48:30.990Z [info] [filesystem] Client transport closed\n2025-04-17T04:48:30.990Z [info] [filesystem] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log.\n2025-04-17T04:48:30.990Z [error] [filesystem] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging)\n2025-04-17T04:48:30.990Z [info] [filesystem] Client transport closed\n\n### mcp-server-filesystem.log\n2025-04-17T04:45:39.310Z [filesystem] [info] Initializing server...\n2025-04-17T04:45:39.331Z [filesystem] [info] Server started and connected successfully\n2025-04-17T04:45:39.334Z [filesystem] [info] Message from client: {\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"claude-ai\",\"version\":\"0.1.0\"}},\"jsonrpc\":\"2.0\",\"id\":0}\nError accessing directory C:\\Users\\MysticKarax\\Desktop: Error: ENOENT: no such file or directory, stat 'C:\\Users\\MysticKarax\\Desktop'\n    at async Object.stat (node:internal/fs/promises:1032:18)\n    at async file:///C:/Users/Mystic%20Karax/AppData/Local/npm-cache/_npx/a3241bba59c344f5/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js:33:23\n    at async Promise.all (index 0)\n    at async file:///C:/Users/Mystic%20Karax/AppData/Local/npm-cache/_npx/a3241bba59c344f5/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js:31:1 {\n  errno: -4058,\n  code: 'ENOENT',\n  syscall: 'stat',\n  path: 'C:\\\\Users\\\\MysticKarax\\\\Desktop'\n}\n2025-04-17T04:45:42.401Z [filesystem] [info] Server transport closed\n2025-04-17T04:45:42.401Z [filesystem] [info] Client transport closed\n2025-04-17T04:45:42.401Z [filesystem] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log.\n2025-04-17T04:45:42.401Z [filesystem] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) {\"context\":\"connection\"}\n2025-04-17T04:45:42.402Z [filesystem] [info] Client transport closed\n2025-04-17T04:48:30.039Z [filesystem] [info] Initializing server...\n2025-04-17T04:48:30.053Z [filesystem] [info] Server started and connected successfully\n2025-04-17T04:48:30.154Z [filesystem] [info] Message from client: {\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"claude-ai\",\"version\":\"0.1.0\"}},\"jsonrpc\":\"2.0\",\"id\":0}\nError accessing directory C:\\Users\\MysticKarax\\Desktop: Error: ENOENT: no such file or directory, stat 'C:\\Users\\MysticKarax\\Desktop'\n    at async Object.stat (node:internal/fs/promises:1032:18)\n    at async file:///C:/Users/Mystic%20Karax/AppData/Local/npm-cache/_npx/a3241bba59c344f5/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js:33:23\n    at async Promise.all (index 0)\n    at async file:///C:/Users/Mystic%20Karax/AppData/Local/npm-cache/_npx/a3241bba59c344f5/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js:31:1 {\n  errno: -4058,\n  code: 'ENOENT',\n  syscall: 'stat',\n  path: 'C:\\\\Users\\\\MysticKarax\\\\Desktop'\n}\n2025-04-17T04:48:30.989Z [filesystem] [info] Server transport closed\n2025-04-17T04:48:30.990Z [filesystem] [info] Client transport closed\n2025-04-17T04:48:30.990Z [filesystem] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log.\n2025-04-17T04:48:30.990Z [filesystem] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) {\"context\":\"connection\"}\n2025-04-17T04:48:30.990Z [filesystem] [info] Client transport closed\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1469/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1463",
      "id": 3000838732,
      "node_id": "I_kwDONRaG_86y3SpM",
      "number": 1463,
      "title": "Python Server | Resource without parameters cannot access Context",
      "user": {
        "login": "renardeinside",
        "id": 4979594,
        "node_id": "MDQ6VXNlcjQ5Nzk1OTQ=",
        "avatar_url": "https://avatars.githubusercontent.com/u/4979594?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/renardeinside",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-16T21:57:21Z",
      "updated_at": "2025-04-16T21:57:37Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\n\nIn Python Server code, resources cannot access context:\n\n```\nfrom mcp.server.fastmcp import FastMCP\nfrom pydantic import BaseModel\nfrom mcp.server.fastmcp import Context\n\nmcp = FastMCP(\"Resonanz\")\n\n@mcp.resource(\"user://current\")\nasync def get_system_status(ctx: Context) -> dict:\n    \"\"\"Checks system status and logs information.\"\"\"\n    ctx.debug(ctx.request_context)\n    return {}\n```\n\nRaises:\n\n```\nERROR Failed to run server: Mismatch between cli.py:328 URI parameters set() and function parameters {'ctx'}\n```\n**To Reproduce**\n\nSee above, dependency is mcp[cli]==1.6.0\n\n**Expected behavior**\nIt works\n\n**Logs**\n\n```\nERROR Failed to run server: Mismatch between cli.py:328 URI parameters set() and function parameters {'ctx'}\n```\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1463/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1452",
      "id": 2999342586,
      "node_id": "I_kwDONRaG_86yxlX6",
      "number": 1452,
      "title": "How can we implement a tool without any parameter ?",
      "user": {
        "login": "Absol16",
        "id": 124043839,
        "node_id": "U_kgDOB2TCPw",
        "avatar_url": "https://avatars.githubusercontent.com/u/124043839?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Absol16",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432755,
          "node_id": "LA_kwDONRaG_88AAAABzvmeMw",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/question",
          "name": "question",
          "color": "d876e3",
          "default": true,
          "description": "Further information is requested"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-16T11:26:33Z",
      "updated_at": "2025-07-04T00:03:05Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "server.tool(\n  \"get-All-profile\",\n  \"Get all profile from the ... client\",\n  {\n // do not have argument\n  },\n  async ({ }) => {\n    const sessionData = await getSessionAndHeaders();\n    const sessionId = sessionData?.sessionId;\n    const ip = sessionData?.ip;\n    const headers = sessionData?.headers;\n\n    if (!sessionId) {\n      return {\n        content: [\n          {\n            type: \"text\",\n            text: \"No active session. Please log in first.\",\n          },\n        ],\n      };\n    }\n....\n\nso when I try this tool on my n8n instance I get schema Error. ",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1452/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1448",
      "id": 2998912583,
      "node_id": "I_kwDONRaG_86yv8ZH",
      "number": 1448,
      "title": "Python MCP  ENOENT {\"context\":\"connection\",\"stack\":\"Error: spawn uv ENOENT",
      "user": {
        "login": "Rounaknayee",
        "id": 37858314,
        "node_id": "MDQ6VXNlcjM3ODU4MzE0",
        "avatar_url": "https://avatars.githubusercontent.com/u/37858314?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Rounaknayee",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-04-16T08:39:38Z",
      "updated_at": "2025-04-17T18:01:24Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nA clear and concise description of what the bug is.\n\n<img width=\"595\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/b45df4ec-d20f-4356-b5ec-ea45ab0061ef\" />\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. \n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Logs**\n\n[info] Initializing server...\n2025-04-16T08:32:29.358Z [devtest] [error] spawn uv ENOENT {\"context\":\"connection\",\"stack\":\"Error: spawn uv ENOENT\\n    at ChildProcess._handle.onexit (node:internal/child_process:285:19)\\n    at onErrorNT (node:internal/child_process:483:16)\\n    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)\"}\n2025-04-16T08:32:29.360Z [devtest] [error] spawn uv ENOENT {\"stack\":\"Error: spawn uv ENOENT\\n    at ChildProcess._handle.onexit (node:internal/child_process:285:19)\\n    at onErrorNT (node:internal/child_process:483:16)\\n    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)\"}\n2025-04-16T08:32:29.390Z [devtest] [info] Server transport closed\n2025-04-16T08:32:29.390Z [devtest] [info] Client transport closed\n2025-04-16T08:32:29.391Z [devtest] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log.\n2025-04-16T08:32:29.391Z [devtest] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) {\"context\":\"connection\"}\n2025-04-16T08:34:34.748Z [devtest] [info] Initializing server...\n2025-04-16T08:34:34.758Z [devtest] [error] spawn uv ENOENT {\"context\":\"connection\",\"stack\":\"Error: spawn uv ENOENT\\n    at ChildProcess._handle.onexit (node:internal/child_process:285:19)\\n    at onErrorNT (node:internal/child_process:483:16)\\n    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)\"}\n2025-04-16T08:34:34.759Z [devtest] [error] spawn uv ENOENT {\"stack\":\"Error: spawn uv ENOENT\\n    at ChildProcess._handle.onexit (node:internal/child_process:285:19)\\n    at onErrorNT (node:internal/child_process:483:16)\\n    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)\"}\n2025-04-16T08:34:34.761Z [devtest] [info] Server transport closed\n2025-04-16T08:34:34.761Z [devtest] [info] Client transport closed\n2025-04-16T08:34:34.762Z [devtest] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log.\n2025-04-16T08:34:34.762Z [devtest] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) {\"context\":\"connection\"}\n\n\n\n**Additional context**\nThe debugger runs fine but when I connect it with my claude, it somehow throws an error.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1448/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1412",
      "id": 2992555327,
      "node_id": "I_kwDONRaG_86yXsU_",
      "number": 1412,
      "title": "The arguments returned by the prompts/list interface should include the type",
      "user": {
        "login": "KimShen",
        "id": 4253252,
        "node_id": "MDQ6VXNlcjQyNTMyNTI=",
        "avatar_url": "https://avatars.githubusercontent.com/u/4253252?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/KimShen",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-14T10:02:28Z",
      "updated_at": "2025-04-15T01:43:47Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "It is advisable to add a new `type` attribute to the `arguments` returned by the `prompts/list` protocol. In this way, LLM Funcall can be used to automatically select which `PromptGet` to use.  like：\n`{  \n  prompts: [  \n    {  \n      name: \"analyze-code\",  \n      description: \"\",    \n      arguments: [  \n        {  \n          name: \"language\",  \n          **_type: \"string\"_**  \n          description: \"\",  \n          required: true  \n        },...  \n      ]  \n    }  \n  ]  \n}`  ",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1412/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1401",
      "id": 2991331365,
      "node_id": "I_kwDONRaG_86yTBgl",
      "number": 1401,
      "title": "Using SOCKS proxy, but the 'socksio' package is not installed.",
      "user": {
        "login": "Jinx-1120",
        "id": 26374251,
        "node_id": "MDQ6VXNlcjI2Mzc0MjUx",
        "avatar_url": "https://avatars.githubusercontent.com/u/26374251?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Jinx-1120",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-04-13T15:51:11Z",
      "updated_at": "2025-05-15T15:48:04Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nWhen I configure the use of fetch in cursor mcp, the configuration takes effect, but when fetch is triggered, an error always occurs：Using SOCKS proxy, but the 'socksio' package is not installed. Make sure to install httpx using `pip install httpx[socks]`.\n\n\n**To Reproduce**\nSteps to reproduce the behavior:\ncursor mcp config:\n```json\n{\n  \"mcpServers\": {\n    \"brave-search\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-brave-search\"],\n      \"env\": {\n        \"BRAVE_API_KEY\": \"xxxxx\"\n      }\n    },\n    \"fetch\": {\n      \"command\": \"uvx\",\n      \"args\": [\"mcp-server-fetch\"]\n    }\n  }\n}\n\n```\n\n**Expected behavior**\nMy device has already installed uv, and the error still exists after performing the following operations:\n\n1. uv venv\n\n2. source .venv/bin/activate\n\n3. uv pip install \"httpx[socks]\"\n\nSimilarly, I also tried using brew install pipx, pipx install \"httpx[socks]\", but the error still exists.\n\n**Logs**\nIf applicable, add logs to help explain your problem.\n\n**Additional context**\nAdd any other context about the problem here.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1401/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1317",
      "id": 2979985056,
      "node_id": "I_kwDONRaG_86xnvag",
      "number": 1317,
      "title": "Unable to run git server",
      "user": {
        "login": "SeanChinJunKai",
        "id": 82928860,
        "node_id": "MDQ6VXNlcjgyOTI4ODYw",
        "avatar_url": "https://avatars.githubusercontent.com/u/82928860?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/SeanChinJunKai",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 6,
      "created_at": "2025-04-08T14:28:26Z",
      "updated_at": "2025-05-02T07:25:58Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\n\n![Image](https://github.com/user-attachments/assets/5c2b7325-a1d9-4d53-8e05-207528d447e0)\n\nWhen i cd into git directory and run python -m mcp_server_git there is no output from the server\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1.\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Logs**\nIf applicable, add logs to help explain your problem.\n\n**Additional context**\nAdd any other context about the problem here.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1317/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1275",
      "id": 2974395842,
      "node_id": "I_kwDONRaG_86xSa3C",
      "number": 1275,
      "title": "New MCP Addition Request - Google meet MCP server",
      "user": {
        "login": "cool-man-vk",
        "id": 76818423,
        "node_id": "MDQ6VXNlcjc2ODE4NDIz",
        "avatar_url": "https://avatars.githubusercontent.com/u/76818423?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/cool-man-vk",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-05T17:47:34Z",
      "updated_at": "2025-04-05T17:47:49Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "The Google Meet MCP Server enables AI agents to create, manage, and retrieve Google Meet meetings via the Google Calendar API. Built on the Model Context Protocol, it exposes tools for scheduling, updating, and deleting meetings, making it easy to integrate Google Meet functionality into MCP-compatible systems.\n\n\nGithub link - <a href=\"https://github.com/cool-man-vk/google-meet-mcp-server\">here</a>",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1275/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1251",
      "id": 2971520077,
      "node_id": "I_kwDONRaG_86xHcxN",
      "number": 1251,
      "title": "Invalid type error",
      "user": {
        "login": "sumitbindra",
        "id": 25441198,
        "node_id": "MDQ6VXNlcjI1NDQxMTk4",
        "avatar_url": "https://avatars.githubusercontent.com/u/25441198?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sumitbindra",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-04-04T07:26:57Z",
      "updated_at": "2025-04-07T23:10:10Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nI have a simple function that gives an errors with a specific field (geography_code) only when calling the server using a client. It works fine when using the inspector. Not sure why that is since there are very few error logs. \n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Copy and connect with server:\n\n```\n# census_server.py\nimport httpx  # For making HTTP requests\nimport json   # For parsing JSON responses\nfrom typing import Literal, Optional, List, Dict, Any\n\nfrom mcp.server.fastmcp import FastMCP\n\n# --- Server Setup ---\nmcp = FastMCP(\"Population Data Explorer\", dependencies=[\"httpx\"])\n\n# --- Tool Definition ---\n@mcp.tool()\nasync def get_population_estimate(\n    year: int = 2019,\n    geography_level: Literal[\"us\", \"state\"] = \"us\",\n    geography_code: str | None = None\n    ) -> Dict[str, Any]:\n    \"\"\"\n    Fetches population estimates\n\n    Args:\n        year: The data estimation year (e.g., 2019, 2021).\n        geography_level: The geographic level: 'us' (default), 'state', or 'county'.\n        geography_code (optional):\n            - A 2-digit state FIPS (e.g., '06') for a specific state, or omit for all states (*).\n\n    Returns:\n        A dictionary containing:\n        - 'year': The year of the population estimate.\n        - 'geography_level': The geographic level of the population estimate.\n        - 'geography_code': The FIPS code of the geographic area.\n    \"\"\"\n    \n    # --- Prepare Query Details for Success Response ---\n \n\n    return {\n                \"year\": year,\n                \"geography_level\": geography_level,\n                \"geography_code\": geography_code,\n            }\n\n# --- Optional: Direct Execution ---\n# (No changes needed here)\nif __name__ == \"__main__\":\n    print(\"Starting MCP server for Census Data Explorer...\")\n    mcp.run()\n\n```\n2. Enter anything like \"pop in california (fips = 06) in 2019\" in client like cursor\n\n**Expected behavior**\nI would expect it to return:\n\n```\n{\nyear: 2019\ngeography_level: \"state\"\ngeography_code: \"06\"\n}\n```\n\n**Logs**\nInvalid type for parameter 'geography_code' in tool get_population_estimate\n\n![Image](https://github.com/user-attachments/assets/f882115a-9f4f-4317-9d4b-e2ac8d41d046)\n\n![Image](https://github.com/user-attachments/assets/9459478d-7b30-4310-8381-ad90142aedd7)\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1251/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1247",
      "id": 2971113319,
      "node_id": "I_kwDONRaG_86xF5dn",
      "number": 1247,
      "title": "Update Everything server to use version 2025-03-26 support for HTTP transport",
      "user": {
        "login": "Dogacel",
        "id": 7023385,
        "node_id": "MDQ6VXNlcjcwMjMzODU=",
        "avatar_url": "https://avatars.githubusercontent.com/u/7023385?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Dogacel",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-04T02:26:18Z",
      "updated_at": "2025-04-04T02:26:18Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nCurrently everything server only supports the SSE based implementation, 2024-11-05. Considering it is a reference server, I think it should support the latest version of the protocol as well.\n\n**Describe the solution you'd like**\nSupport for the latest HTTP transport protocol.\n\n**Describe alternatives you've considered**\nMaybe implement both versions side by side instead of fully replacing\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1247/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1240",
      "id": 2970367974,
      "node_id": "I_kwDONRaG_86xDDfm",
      "number": 1240,
      "title": "New chat tries to re-use existing browser and fails..",
      "user": {
        "login": "jipatel",
        "id": 4930145,
        "node_id": "MDQ6VXNlcjQ5MzAxNDU=",
        "avatar_url": "https://avatars.githubusercontent.com/u/4930145?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jipatel",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-04-03T18:29:29Z",
      "updated_at": "2025-04-08T06:57:12Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nNon docker puppeteer not working with new chat.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Start a fresh chat (re-start Claude Desktop). \n2. Do something with puppeteer.\n3. Start new chat and do something with puppeteer.\n\n**Expected behavior**\nNew puppeteer interactions in new chat should start a new session\n\n**Logs**\nIf applicable, add logs to help explain your problem.\n\n**Additional context**\nAdd any other context about the problem here.\n\n![Image](https://github.com/user-attachments/assets/390baf00-7caf-4e7b-aab2-a136c42f6efd)",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1240/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1237",
      "id": 2969902821,
      "node_id": "I_kwDONRaG_86xBR7l",
      "number": 1237,
      "title": "Capturing raw HTTP responses from MCP StdioServerTransport",
      "user": {
        "login": "caio1985",
        "id": 1559101,
        "node_id": "MDQ6VXNlcjE1NTkxMDE=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1559101?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/caio1985",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-03T15:00:29Z",
      "updated_at": "2025-04-03T15:00:29Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Hi,\n\nI'd like to see the final HTTP requests coming out of the MCP server to see if I'd able to differentiate regular HTTP REST requests coming from MCP servers versus other origins.\n\nIs there a way to turn on verbose / debug logging to see the final HTTP requests generated by the StdioServerTransport?\n\nThanks!",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1237/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1232",
      "id": 2969370590,
      "node_id": "I_kwDONRaG_86w_P_e",
      "number": 1232,
      "title": "Centralized Secrets management through Hashicorp Vault or any Secret management solution",
      "user": {
        "login": "marcellodesales",
        "id": 131457,
        "node_id": "MDQ6VXNlcjEzMTQ1Nw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/131457?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/marcellodesales",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-04-03T12:07:22Z",
      "updated_at": "2026-02-12T13:10:25Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\n\n* Most servers use 12-factor secrets passed through env var. This is working great.\n* However, the potential risks of losing control of any server configuration might risk exposing secrets\n\n**Describe the solution you'd like**\n\n* Secrets from the server could be fetched from a secret management solution running locally or remotely\n\n**Describe alternatives you've considered**\n\nAn example of this is https://github.com/modelcontextprotocol/servers/tree/main/src/aws-kb-retrieval-server\n\n```json\n{\n  \"mcpServers\": {\n    \"aws-kb-retrieval\": {\n      \"command\": \"docker\",\n      \"args\": [ \"run\", \"-i\", \"--rm\", \"-e\", \"AWS_ACCESS_KEY_ID\", \"-e\", \"AWS_SECRET_ACCESS_KEY\", \"-e\", \"AWS_REGION\", \"mcp/aws-kb-retrieval-server\" ],\n      \"env\": {\n        \"AWS_ACCESS_KEY_ID\": \"YOUR_ACCESS_KEY_HERE\",\n        \"AWS_SECRET_ACCESS_KEY\": \"YOUR_SECRET_ACCESS_KEY_HERE\",\n        \"AWS_REGION\": \"YOUR_AWS_REGION_HERE\"\n      }\n    }\n  }\n}\n```\n\nWith this feature, we should have the following\n\n* Secrets Vault Server:\n  * Environment variables for the access to the secret vault server should be used by default\n  * Users can configure secrets by themselves, setting up paths and values to them\n* Example: named AWS Credentials for the same project, different environments (DEV, PRD)\n\n```yaml\nsecret-server:\n  host: \"localhost:1122\"\nsecret-envs:\n  aws-dev:\n    AWS_ACCESS_KEY_ID: ****\n    AWS_SECRET_ACCESS_KEY: ****\n    AWS_REGION: ***** \n  aws-prd:\n    AWS_ACCESS_KEY_ID: ****\n    AWS_SECRET_ACCESS_KEY: ****\n    AWS_REGION: ***** \n```\n\n* MCP Servers client\n\n## With server changes\n\n* It should be able to load the configs from the underlying Secret Vault server\n\n```json\n{\n  \"mcpServers\": {\n    \"aws-kb-retrieval\": {\n      \"secretsServer\": {\n         \"env\": \"aws-prd\"\n      }\n      \"command\": \"docker\",\n      \"args\": [ \"run\", \"-i\", \"--rm\", \"-e\", \"MCP_SECRETS_SERVER\", \"-e\", \"MCP_SECRETS_GROUP\", \"-e\", \"AWS_REGION\", \"mcp/aws-kb-retrieval-server\" ],\n      \"env\": {\n        \"MCP_SECRETS_SERVER\": \"localhost:1122\",\n        \"MCP_SECRETS_GROUP\": \"aws-prd\"\n      }\n    }\n  }\n}\n```\n\n## Without changing servers\n\n* Example using Claude config\n* change the config interface for servers \n\n```json\n{\n  \"mcpServers\": {\n    \"secretsServer\": {\n       \"env\": \"aws-prd\"\n    }\n    \"aws-kb-retrieval\": {\n      \"command\": \"docker\",\n      \"args\": [ \"run\", \"-i\", \"--rm\", \"-e\", \"AWS_ACCESS_KEY_ID\", \"-e\", \"AWS_SECRET_ACCESS_KEY\", \"-e\", \"AWS_REGION\", \"mcp/aws-kb-retrieval-server\" ],\n      \"env\": {\n        \"AWS_ACCESS_KEY_ID\": \"${{ secretsServer.env.AWS_ACCESS_KEY_ID }}\",\n        \"AWS_SECRET_ACCESS_KEY\": \"${{ secretsServer.env.AWS_SECRET_ACCESS_KEY }}\",\n        \"AWS_REGION\": \"${{ secretsServer.env.AWS_REGION }}\"\n      }\n    }\n  }\n}\n```\n\n**Additional context**\n\n* For MCP servers that has the internal features built-in, the secrets would be retrieved automatically \n* Using this approach in the protocol itself, we avoid exposing secrets",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1232/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1228",
      "id": 2968484903,
      "node_id": "I_kwDONRaG_86w73wn",
      "number": 1228,
      "title": "What solutions are available to directly start Docker for SSE, allowing HTTP calls?",
      "user": {
        "login": "phpmac",
        "id": 86544347,
        "node_id": "MDQ6VXNlcjg2NTQ0MzQ3",
        "avatar_url": "https://avatars.githubusercontent.com/u/86544347?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/phpmac",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-03T06:31:36Z",
      "updated_at": "2025-04-03T06:31:36Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "What solutions are available to directly start Docker for SSE, allowing HTTP calls?\r\rCurrently, it can only be run using commands. How to implement an SSE HTTP server?",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1228/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1215",
      "id": 2966969468,
      "node_id": "I_kwDONRaG_86w2Fx8",
      "number": 1215,
      "title": "Support for multiple clients in McpServer",
      "user": {
        "login": "xianminx",
        "id": 1154824,
        "node_id": "MDQ6VXNlcjExNTQ4MjQ=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1154824?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/xianminx",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-04-02T16:31:34Z",
      "updated_at": "2025-05-06T13:02:45Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "\n\n\n**Is your feature request related to a problem? Please describe.**\n\nCurrently, the `McpServer` implementation in the ModelContextProtocol likely handles client connections in a one-to-one manner. This means that only a single client can be actively communicating with the server at any given time. This limitation can be problematic in scenarios where multiple entities need to interact with the ModelContextProtocol server concurrently. For instance, in applications with multiple users or independent processes that need to access the server's functionalities, the current single-connection model would lead to queuing, delays, and a poor user experience.\n\n```mermaid\ngraph LR\n    McpServer -- 1:1 --> Server\n    Server -- 1:1 --> Transport\n    Transport -- 1:1 --> Client\n```\n\n**Describe the solution you'd like**\n\nI propose enhancing the `McpServer` in the ModelContextProtocol typescript server implementations to support multiple concurrent client connections.\n\n\nThe sample code in Readme shows a way to maintain transports for clients in the express app layer, but since the spec has the concept of session, it is better managed inside the server SDK, i.e McpServer or `Server` maintains a `<sessionId, transport>` mapping. This architecture shift keeps using server SDK simple and concurrent by default. \n\n```ts\n// mcp.ts\n  private transports: {[sessionId: string]: Server} = {};\n\n  async connect(transport: Transport): Promise<void> {\n    const server = new Server(serverInfo, options);\n    await server.connect(transport);\n    this.transports[transport.getSessionId()] = server ;\n  }\n```\n\n\nThis feature would make the `McpServer` more robust and suitable for a wider range of modern application architectures.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1215/reactions",
        "total_count": 6,
        "+1": 6,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1213",
      "id": 2966928278,
      "node_id": "I_kwDONRaG_86w17uW",
      "number": 1213,
      "title": "Changelog.md",
      "user": {
        "login": "danielscholl",
        "id": 26447046,
        "node_id": "MDQ6VXNlcjI2NDQ3MDQ2",
        "avatar_url": "https://avatars.githubusercontent.com/u/26447046?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/danielscholl",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-02T16:11:59Z",
      "updated_at": "2025-04-02T16:11:59Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Description\n\nWe need to add a Changelog.md file to the repository to track changes and updates to our code samples.\n\n## Rationale\n- This repository contains various code samples and examples for implementation\n- A changelog will help users understand what has changed between versions\n- It will provide a clear history of new features, bug fixes, and breaking changes\n- Will be useful for maintaining API compatibility and tracking version history\n\n## Proposed Format\nThe changelog should follow the [Keep a Changelog](https://keepachangelog.com/) format which includes:\n- A clear release date for each version\n- Changes grouped by \"Added\", \"Changed\", \"Deprecated\", \"Removed\", \"Fixed\", and \"Security\"\n- Links to relevant issues or pull requests\n\n## Implementation Timeline\n- Should be created with our next release\n- Retroactively document major changes from previous releases if possible",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1213/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1208",
      "id": 2966405474,
      "node_id": "I_kwDONRaG_86wz8Fi",
      "number": 1208,
      "title": "[Filesystem] add append tools",
      "user": {
        "login": "bengbengbalabalabeng",
        "id": 70380092,
        "node_id": "MDQ6VXNlcjcwMzgwMDky",
        "avatar_url": "https://avatars.githubusercontent.com/u/70380092?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/bengbengbalabalabeng",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-02T13:30:21Z",
      "updated_at": "2025-04-26T14:48:14Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nCurrently, if I want to append a new line of text to an existing .txt file using this tool, there only have `wirte_file` now.\n\n**Describe the solution you'd like**\nI would like a new tool to be added, named `append_file` or `append_wirte_file`. This function should perform the following actions:\n\nAccept two main arguments: the path to the target text file and the string content to be appended. Write the provided string content to the end of the file.\n\nCrucially, automatically add a newline character (\\n or the appropriate OS-specific newline) after the appended content. This ensures that each call to this function adds the content on a new line, making subsequent appends also start on a fresh line.\n\nHandle the closing of the file automatically and safely.\n\n**Describe alternatives you've considered**\nNone.\n\n**Additional context**\nNone.\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1208/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1188",
      "id": 2964266997,
      "node_id": "I_kwDONRaG_86wrx_1",
      "number": 1188,
      "title": "[Filesystem] - File Options",
      "user": {
        "login": "VinayGandra",
        "id": 18310116,
        "node_id": "MDQ6VXNlcjE4MzEwMTE2",
        "avatar_url": "https://avatars.githubusercontent.com/u/18310116?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/VinayGandra",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-01T18:32:10Z",
      "updated_at": "2025-04-26T14:48:14Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nI would like to get some basic information of file contents like row count, header, first n-rows, last n-rows.\nIt is currently trying to load/read the entire file and fails if the file is larger than certain size on claude desktop(windows 11, 32gb memory)\n\n**Describe the solution you'd like**\nAdd methods to work on file content without reading entire content.\nEither streaming/line by line/buffered or other memory efficient methods.\n\n**Describe alternatives you've considered**\nA python based filesystem server or alternative js packages if the current implementation/packages can only handle very small files.\n\n**Additional context**\nTried with reading entire csv(method: read_file) with 10 columns and: \n  500 rows(failed)\n  100 rows(failed)\n  5 rows(succeeded) \n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1188/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1185",
      "id": 2963844053,
      "node_id": "I_kwDONRaG_86wqKvV",
      "number": 1185,
      "title": "Want to discuss",
      "user": {
        "login": "wojiaoxiaomayun",
        "id": 30283623,
        "node_id": "MDQ6VXNlcjMwMjgzNjIz",
        "avatar_url": "https://avatars.githubusercontent.com/u/30283623?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/wojiaoxiaomayun",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-04-01T15:41:21Z",
      "updated_at": "2025-04-01T15:41:21Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "There is no html source code passed in the code. How does the big model know that I want to click the selector of the element?\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1185/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1163",
      "id": 2960327893,
      "node_id": "I_kwDONRaG_86wcwTV",
      "number": 1163,
      "title": "Plugin sequential-thinking fails with \"Client closed\" when launched in Cursor",
      "user": {
        "login": "sszdhlh",
        "id": 77661407,
        "node_id": "MDQ6VXNlcjc3NjYxNDA3",
        "avatar_url": "https://avatars.githubusercontent.com/u/77661407?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sszdhlh",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2025-03-31T12:15:27Z",
      "updated_at": "2025-05-07T22:53:23Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "---\n\n**Describe the bug**  \nWhen using the `@modelcontextprotocol/server-sequential-thinking` plugin in Cursor, it fails to run and shows `Client closed`. The same JSON configuration and command work fine in VSCode. This indicates the plugin server process may be exiting immediately after starting.\n\n**To Reproduce**  \nSteps to reproduce the behavior:  \n1. Enable the `sequential-thinking` plugin in Cursor  \n2. Cursor attempts to run the command:  \n   ```bash\n   cmd /c npx -y @modelcontextprotocol/server-sequential-thinking\n   ```  \n3. The plugin briefly shows \"Enabled\" and then fails with `Client closed`\n\n**Expected behavior**  \nThe plugin should start a persistent MCP server that Cursor can connect to and interact with, just like other MCP plugins such as `browser-tool-mcp`.\n\n**Logs**  \nCursor log message:  \n```\nClient closed\n```  \nManually running the command in a terminal does not produce errors and the server starts as expected.\n\n**Additional context**  \nThis issue only happens with the `sequential-thinking` plugin. Other MCP plugins (e.g., `browser-tool-mcp`) work correctly in Cursor using the same setup and command structure.  \nIt’s possible the server script does not block the main thread (e.g., missing `await app.listen()` or `server.listen()`), causing the process to exit immediately in non-interactive environments like Cursor.  \n\n**Environment**  \n- Cursor version: 0.47.8 (user setup)  \n- VSCode version: 1.96.2  \n- Node.js: 20.18.1  \n- OS: Windows 11 (Windows_NT x64 10.0.26100)\n\n---\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1163/reactions",
        "total_count": 3,
        "+1": 3,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1160",
      "id": 2960002347,
      "node_id": "I_kwDONRaG_86wbg0r",
      "number": 1160,
      "title": "Support read-only paths in filesystem MCP with npx",
      "user": {
        "login": "RonanKMcGovern",
        "id": 78278410,
        "node_id": "MDQ6VXNlcjc4Mjc4NDEw",
        "avatar_url": "https://avatars.githubusercontent.com/u/78278410?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/RonanKMcGovern",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-31T09:45:50Z",
      "updated_at": "2025-04-26T14:48:13Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nRead-only paths only seem supported when running via docker.\n\n**Describe the solution you'd like**\nAllow read-only of certain paths when running with npx.\n\n**Describe alternatives you've considered**\nDocker, which works but I'd like the npx option, if possible.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1160/reactions",
        "total_count": 1,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 1,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1158",
      "id": 2959878332,
      "node_id": "I_kwDONRaG_86wbCi8",
      "number": 1158,
      "title": "Multiple SSE Transport Management Support Request",
      "user": {
        "login": "taehunss",
        "id": 117618060,
        "node_id": "U_kgDOBwK1jA",
        "avatar_url": "https://avatars.githubusercontent.com/u/117618060?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/taehunss",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-31T08:58:08Z",
      "updated_at": "2025-03-31T08:58:08Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Multiple SSE Transport Management Support Request\n\n### Current Behavior\nCurrently, managing multiple SSE Transport connections simultaneously is challenging:\n- Session IDs are lost during communication\n- No built-in support for multiple client management\n- Each new connection overwrites the previous transport instance\n\n### Expected Behavior\n- Ability to handle multiple SSE Transport connections simultaneously\n- Persistent session management across connections\n- Built-in support for multiple client connections without manual implementation\n\n### Example Code\n```typescript\n// Current implementation that only supports single transport\nexpressApp.get('/sse', async (req, res) => {\n  try {\n    transport = new SSEServerTransport('/message', res);\n    await mcpServer.connect(transport);\n    logger.log('Server connected');\n  } catch (error) {\n    logger.error(error);\n    res.status(500).send('Internal server error');\n  }\n});\n```\n\n### Proposed Solution\nConsider adding:\n1. Built-in transport management system\n2. Session persistence mechanism\n3. Configuration options for multiple client support\n\n### Feature Request\nWould it be possible to add native support for multiple SSE Transport connections? This would greatly improve the developer experience and reduce the need for custom implementations.\n\n### Environment\n- SDK Version: [1.6.1]\n- Node.js Version: [20.15.1]\n- Platform: [MAC OS 15.0]\n\n### Additional Context\nThis feature would be particularly useful for applications requiring simultaneous connections from multiple clients, such as chat applications or real-time collaboration tools.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1158/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1149",
      "id": 2958964174,
      "node_id": "I_kwDONRaG_86wXjXO",
      "number": 1149,
      "title": "Add CI workflow for testing on Windows runners",
      "user": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-30T16:25:15Z",
      "updated_at": "2025-03-30T16:25:15Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "### Is your feature request related to a problem? Please describe.\n\nMany Windows-specific issues are hard to catch early since the current CI workflows only run on Ubuntu runners. This makes it difficult to verify Windows compatibility until issues are reported by users, leading to a slower feedback loop for Windows-related bugs.\n\n### Describe the solution you'd like\n\nAdd Windows runners to the CI workflow by creating a new dedicated testing workflow that:\n1. Runs tests on both Ubuntu and Windows using GitHub's hosted runners\n2. Uses a matrix strategy to test both TypeScript and Python packages\n3. Runs in parallel with existing build workflows\n4. Provides early feedback on Windows compatibility for all PRs\n\nExample workflow configuration:\n```yaml\nname: Cross-Platform Tests\n\non:\n  push:\n    branches: [ main ]\n  pull_request:\n\njobs:\n  test-typescript:\n    runs-on: ${{ matrix.os }}\n    strategy:\n      matrix:\n        os: [ubuntu-latest, windows-latest]\n        node-version: [22]\n    steps:\n      - uses: actions/checkout@v4\n      - uses: actions/setup-node@v4\n        with:\n          node-version: ${{ matrix.node-version }}\n          cache: npm\n      - run: npm ci\n      - run: npm test\n```\n\nDisclaimer: This ^^ is a quickly edited Claude suggestion so it may contain syntax errors.\n\n### Describe alternatives you've considered\n\n1. **Modify existing workflows**: Add Windows runners to typescript.yml and python.yml\n   - Pro: Keeps CI config in fewer files\n   - Con: Makes existing workflows more complex\n\n2. **Separate Windows-only workflows**\n   - Pro: Simpler to maintain\n   - Con: Duplicates config between OS-specific workflows\n\n### Additional context\n\n- Implementation can be done incrementally:\n  1. Add Windows testing for TypeScript packages\n  2. Extend to Python packages once TypeScript integration is verified\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1149/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1146",
      "id": 2958942977,
      "node_id": "I_kwDONRaG_86wXeMB",
      "number": 1146,
      "title": "Update server-fetch proxy implementation for httpx 0.28+",
      "user": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8359493310,
          "node_id": "LA_kwDONRaG_88AAAAB8kO-vg",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-fetch",
          "name": "server-fetch",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Fetch MCP server - src/fetch"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-03-30T15:39:51Z",
      "updated_at": "2025-05-02T18:05:21Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nProxy handling was recently added to server-fetch using the deprecated proxies argument from `httpx<0.28.0`: https://github.com/modelcontextprotocol/servers/pull/816\n\n\n**Describe the solution you'd like**\nSwitch to explicit AsyncClient creation as described here: https://github.com/encode/httpx/issues/3424\nThat way we can update the httpx dependency to newer versions.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1146/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1130",
      "id": 2957866906,
      "node_id": "I_kwDONRaG_86wTXea",
      "number": 1130,
      "title": "Add standardized JSON/YAML descriptions for MCP servers",
      "user": {
        "login": "fkesheh",
        "id": 98839443,
        "node_id": "U_kgDOBeQrkw",
        "avatar_url": "https://avatars.githubusercontent.com/u/98839443?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/fkesheh",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-29T08:27:05Z",
      "updated_at": "2025-03-29T08:27:05Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nCurrently, there's no standardized way to describe MCP servers, their capabilities, and configuration requirements. This makes it difficult for users to understand what each server does, how to configure it, and how to integrate it into their workflows without diving deep into the code or documentation. It also lacks a programmatic way to discover and understand server capabilities.\n\n**Describe the solution you'd like**\nAdd a standardized JSON/YAML description format for each MCP server that includes:\n- Basic metadata (name, description, GitHub repo, license)\n- Tool descriptions with clear explanations of each function\n- Required environment variables\n- MCP configuration settings\n- Any dependencies or special requirements\n\nThis should enable AI systems and other tools to automatically discover and understand the capabilities of each MCP server, facilitating easier integration and usage without manual intervention.\n\nSimilar to the example provided:\n```json\n{\n  \"name\": \"everart\",\n  \"description\": \"An MCP server implementation that integrates with EverArt's API for image generation. Supports multiple AI models for image creation with customizable parameters. Generated images are opened in the browser and URLs are returned for reference.\",\n  \"toolsDescription\": {\n    \"generate_image\": \"Generates images based on text prompts with multiple model options. Parameters include prompt (required), model ID (optional), and image count (optional). Opens the generated image in the browser and returns the URL. All images are generated at 1024x1024 resolution.\"\n  },\n  \"gitHubRepo\": \"https://github.com/modelcontextprotocol/servers\",\n  \"license\": \"MIT\",\n  \"environmentVariables\": {\n    \"EVERART_API_KEY\": {\n      \"description\": \"API key for EverArt image generation API\",\n      \"required\": true\n    }\n  },\n  \"mcpConfig\": {\n    \"mcpServers\": {\n      \"everart\": {\n        \"command\": \"npx\",\n        \"args\": [\"-y\", \"@modelcontextprotocol/server-everart\"]\n      }\n    }\n  }\n}\n```\n\nThese descriptions would:\n1. Make it easier for users to understand server capabilities at a glance\n2. Enable automatic generation of documentation\n3. Allow for tooling and AI systems to automatically discover and understand capabilities\n4. Enable AI-assisted integration and configuration\n5. Allow for automatic validation of configurations\n6. Create consistency across the ecosystem\n7. Simplify onboarding for new developers\n\n**Describe alternatives you've considered**\n- Relying solely on README files, but these can be inconsistent in format and detail\n\n**Additional context**\nThis approach is inspired by similar practices in other ecosystems:\n- OpenAPI/Swagger specs for REST APIs\n- Package.json for npm packages\n- Docker Compose YAML for container configurations\n- AI plugin manifests for LLM tool discovery",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1130/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1124",
      "id": 2957051937,
      "node_id": "I_kwDONRaG_86wQQgh",
      "number": 1124,
      "title": "Add cancellation handling to Everything server",
      "user": {
        "login": "cliffhall",
        "id": 871933,
        "node_id": "MDQ6VXNlcjg3MTkzMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/cliffhall",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-28T19:48:45Z",
      "updated_at": "2025-06-17T15:57:18Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nFor testing with the Inspector, add handling of CancelledNotificationSchema messages to stop the long-running process example.\n\n**Describe the solution you'd like**\n* The UI (in a related PR to the Inspector repo) would track the id of the long-running process, and expose a button that lets you cancel.\n* The `everything` server in this repo would handle the message and cancel the long-running process.\n\n**Describe alternatives you've considered**\nNot doing it.\n\n**Additional context**\nThis idea was raised in [this PR](https://github.com/modelcontextprotocol/inspector/pull/191#issuecomment-2761319231) to the inspector repo.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1124/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1122",
      "id": 2956838060,
      "node_id": "I_kwDONRaG_86wPcSs",
      "number": 1122,
      "title": "[FEATURE] Deployment Blueprint for Model Context Protocol Servers",
      "user": {
        "login": "onchainengineer",
        "id": 71596206,
        "node_id": "MDQ6VXNlcjcxNTk2MjA2",
        "avatar_url": "https://avatars.githubusercontent.com/u/71596206?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/onchainengineer",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-03-28T18:04:59Z",
      "updated_at": "2026-02-12T15:16:08Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# Enterprise Deployment Blueprint for Model Context Protocol Servers\n\n## Overview\n\nWe'd like to create a standardized enterprise deployment blueprint for Model Context Protocol servers to help increase adoption among enterprise users. This blueprint would be completely free, open-source, and require minimal involvement from the project maintainers.\n\n## What We're Offering\n\n[wirtual.dev](https://wirtual.dev) is creating standardized deployment blueprints for leading open-source AI applications. We'd like to create one for MCP servers that would:\n\n- Package MCP servers as a standardized blueprint for one-click enterprise deployment\n- Add enterprise-grade security controls and governance\n- Integrate with a shared context layer for interoperability between multiple MCP servers\n- Provide a secure environment for customization and extension\n\n## Value to MCP Ecosystem\n\nThis blueprint would:\n\n1. **Increase enterprise adoption** by removing deployment complexity barriers\n2. **Enhance security posture** with enterprise-grade controls around sensitive credentials and API access\n3. **Simplify configuration management** across multiple MCP servers in enterprise environments\n4. **Maintain full compatibility** with existing MCP clients like Claude Desktop\n5. **Preserve extensibility** while making it easier for enterprises to manage server deployment\n\n## What We Need From You\n\n- Permission to create this open-source blueprint for MCP servers\n- Optional: Any guidance on deployment best practices not already in documentation\n- Optional: Review of the blueprint when complete (though not required)\n\n## Important Assurances\n\n- The blueprint will be completely **open-source** under the same MIT license\n- There is **no vendor lock-in** - users can deploy without our platform if desired\n- The project **remains independent** - this is simply an additional deployment option\n- No changes to core codebases are needed\n\n## Project Alignment and Contribution Process\n\nWe're reaching out before beginning work to ensure our blueprint aligns with your project's vision and contribution standards. This approach helps us:\n\n1. Confirm the blueprint would be welcomed by the project maintainers\n2. Understand any specific requirements or preferences you might have\n3. Establish clear expectations about the review and merging process\n4. Ensure we're not duplicating efforts already underway\n\n## Next Steps\n\nIf you're open to this collaboration, we'd appreciate:\n\n1. Confirmation that this type of contribution would be welcomed\n2. Any specific guidance on how you'd prefer we reference this blueprint in your documentation\n3. Indication of any aspects of the proposal that need adjustment to better align with your project\n\nWe're happy to answer any questions or address any concerns you might have before proceeding.\n\nThank you for considering our proposal!",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1122/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1110",
      "id": 2954850679,
      "node_id": "I_kwDONRaG_86wH3F3",
      "number": 1110,
      "title": "Feature Request: Add @mcpmarket to README",
      "user": {
        "login": "MyPrototypeWhat",
        "id": 43230886,
        "node_id": "MDQ6VXNlcjQzMjMwODg2",
        "avatar_url": "https://avatars.githubusercontent.com/u/43230886?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/MyPrototypeWhat",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-28T02:32:37Z",
      "updated_at": "2025-11-26T15:38:39Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Hi maintainers,\n\nI've developed an MCP service called `@mcpmarket/mcp-auto-install`, which simplifies the installation process for MCP servers. It's published on npm here: https://www.npmjs.com/package/@mcpmarket/mcp-auto-install. This package is part of the `@mcpmarket` ecosystem, integrated with Cherry Studio (https://github.com/CherryHQ/cherry-studio), a project by CherryHQ.\n\nI’d like to request adding my service to the **README** under the services list. Please let me know if this fits your criteria, or if you need more details (e.g., description, usage examples) or a Pull Request to proceed. Happy to contribute further if needed!\n\nThanks for your time and consideration!\n\nBest",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1110/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1106",
      "id": 2954727787,
      "node_id": "I_kwDONRaG_86wHZFr",
      "number": 1106,
      "title": "Configure MCP server remotely without command",
      "user": {
        "login": "faelp22",
        "id": 6642575,
        "node_id": "MDQ6VXNlcjY2NDI1NzU=",
        "avatar_url": "https://avatars.githubusercontent.com/u/6642575?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/faelp22",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-03-28T00:33:59Z",
      "updated_at": "2025-04-07T09:02:33Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Hello, I would like to know if it is possible to have an MCP server without needing a command in the claude_desktop_config.json file.\n\nI created a remote server that runs on a VPS and I would like to be able to connect to Claude Desktop without having to install anything on my PC.\n\n## server without authentication\n```json\n{\n    \"mcpServers\": {\n        \"todos\": {\n            \"url\": \"http://localhost:8080\"\n        }\n    }\n}\n```\n\n## server with authentication 1\n```json\n{\n    \"mcpServers\": {\n        \"todos\": {\n            \"url\": \"https://my-server.com\",\n            \"auth\": {\n                \"username\": \"user\",\n                \"password\": \"password\"\n            }\n        }\n    }\n}\n```\n\n## server with authentication 2\n```json\n{\n    \"mcpServers\": {\n        \"todos\": {\n            \"url\": \"https://my-server.com\",\n            \"auth\": {\n                \"token\": \"asdasdasdasd\",\n            }\n        }\n    }\n}\n```\n\nthank you for your attention",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1106/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1077",
      "id": 2949480806,
      "node_id": "I_kwDONRaG_86vzYFm",
      "number": 1077,
      "title": "Add depth parameter to directory_tree function in filesystem server",
      "user": {
        "login": "Qingqian-Wang",
        "id": 62529847,
        "node_id": "MDQ6VXNlcjYyNTI5ODQ3",
        "avatar_url": "https://avatars.githubusercontent.com/u/62529847?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Qingqian-Wang",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-03-26T12:42:52Z",
      "updated_at": "2025-04-26T14:48:13Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Hi，\n\nI’d like to suggest adding a depth parameter to the directory_tree function in the filesystem server.\n\nI’m currently building an AI agent that utilizes the MCP server. When I call directory_tree to list files in a system repository, the returned file structure is too large, making it difficult to include in prompts due to token limitations. A depth limit would help return a more concise, manageable view of the directory structure.\n\nThanks for considering this enhancement!",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1077/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1067",
      "id": 2947709652,
      "node_id": "I_kwDONRaG_86vsnrU",
      "number": 1067,
      "title": "File server tool not finding files.",
      "user": {
        "login": "breathe67",
        "id": 12347378,
        "node_id": "MDQ6VXNlcjEyMzQ3Mzc4",
        "avatar_url": "https://avatars.githubusercontent.com/u/12347378?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/breathe67",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2025-03-25T20:40:56Z",
      "updated_at": "2025-04-26T14:48:12Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "My apologies for not having had time to write a 'proper' bug report', however does anyone know off-hand the reason for the behavior below ?\n \nI installed the basic MCP filesystem server tool on 3/25/2025, and asked Claude Desktop (in Windows) to find all files matching \"statement\". It found none, thought there are several there. The response it gave me:\n\n      {\n        `path`: `C:\\\\Users\\\\breat\\\\Downloads`,\n        `pattern`: `*statement*`\n      }\n      No matches found\n\nWhen I asked it to to find a specific filename, it worked. The prompt was:\n    \n     search for any file named \"statement (7).pdf\"\n\n (Note I had to use Claude 3.5 Haiku, due to current server limitations.)\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1067/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1018",
      "id": 2940935436,
      "node_id": "I_kwDONRaG_86vSx0M",
      "number": 1018,
      "title": "Environment variables not respected in @modelcontextprotocol/server-memory package",
      "user": {
        "login": "syahiidkamil",
        "id": 93661408,
        "node_id": "U_kgDOBZUo4A",
        "avatar_url": "https://avatars.githubusercontent.com/u/93661408?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/syahiidkamil",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359496976,
          "node_id": "LA_kwDONRaG_88AAAAB8kPNEA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-memory",
          "name": "server-memory",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Memory MCP server - src/memory"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "assignees": {
        "0": {
          "login": "olaservo",
          "id": 16480113,
          "node_id": "MDQ6VXNlcjE2NDgwMTEz",
          "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/olaservo",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "milestone": null,
      "comments": 12,
      "created_at": "2025-03-23T05:27:35Z",
      "updated_at": "2025-12-12T23:12:58Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "## Description\nThe published version of `@modelcontextprotocol/server-memory` (0.6.2) on npm does not respect the `MEMORY_FILE_PATH` environment variable. The repository source code correctly handles environment variables, but the compiled version published to npm uses a hardcoded path for the memory file.\n\n## Fix\n**Publish to npm the latest 0.6.3 version**\n\n## Steps to Reproduce\n1. Install the package with `npm i -g @modelcontextprotocol/server-memory`\n2. Set environment variable: `export MEMORY_FILE_PATH=\"/custom/path/memory.json\"`\n3. Run the server: `mcp-server-memory`\n4. Observe that the memory file is still created at the default location, not the path specified in the environment variable\n\n## Expected Behavior\nThe server should use the path specified in the `MEMORY_FILE_PATH` environment variable for storing the memory file.\n\n## Actual Behavior\nThe server ignores the environment variable and always uses a hardcoded path: `path.join(__dirname, 'memory.json')`.\n\n## Logs\nWhen checking the source file index.ts (at github):\nhttps://github.com/modelcontextprotocol/servers/blob/main/src/memory/index.ts\n\n```javascript\n// The code correctly handles environment variables\nconst MEMORY_FILE_PATH = process.env.MEMORY_FILE_PATH\n  ? path.isAbsolute(process.env.MEMORY_FILE_PATH)\n    ? process.env.MEMORY_FILE_PATH\n    : path.join(path.dirname(fileURLToPath(import.meta.url)), process.env.MEMORY_FILE_PATH)\n  : defaultMemoryPath;\n```\n\nBut the compiled index.js in the distributed package has:\n```javascript\n// Environment variable handling is stripped during compilation\nconst MEMORY_FILE_PATH = path.join(__dirname, 'memory.json');\n```\n\n## Additional Context\n- The latest GitHub repository version is 0.6.3, but npm still has 0.6.2\n- **The issue can be resolved by publishing the 0.6.3 version to npm**\n\n## Fix\n**Publish to npm the latest 0.6.3 version**",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1018/reactions",
        "total_count": 23,
        "+1": 22,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 1
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1005",
      "id": 2940423986,
      "node_id": "I_kwDONRaG_86vQ08y",
      "number": 1005,
      "title": "Add the AWS Service Authorization Reference MCP server",
      "user": {
        "login": "psantus",
        "id": 17251818,
        "node_id": "MDQ6VXNlcjE3MjUxODE4",
        "avatar_url": "https://avatars.githubusercontent.com/u/17251818?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/psantus",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-22T14:42:17Z",
      "updated_at": "2025-03-22T14:42:17Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Server is available here:\nhttps://github.com/psantus/aws-service-authorization-reference\n\nAdding it to your list would be nice ;)",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1005/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/999",
      "id": 2940159408,
      "node_id": "I_kwDONRaG_86vP0Ww",
      "number": 999,
      "title": "Add Java SDK–based MCP Server Example to Repository",
      "user": {
        "login": "youngsu5582",
        "id": 98307410,
        "node_id": "U_kgDOBdwNUg",
        "avatar_url": "https://avatars.githubusercontent.com/u/98307410?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/youngsu5582",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {},
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-22T06:50:09Z",
      "updated_at": "2025-03-22T06:50:26Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "I saw\n\n```\nEach MCP server is implemented with either the Typescript MCP SDK or Python MCP SDK.\n```\n\nthis explation.\n\nthis explanation mean that server examples built with the Java SDK aren’t supported? \nOr does it simply mean that no Java SDK examples exist yet? \n\nIf it’s the latter, would it be okay for me to submit a PR adding my Java Mcp-Server example([mcp-server-mysql](https://github.com/youngsu5582/mcp-server-mysql))?\n\nThank you.  ☺️☺️",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/999/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/917",
      "id": 2930054688,
      "node_id": "I_kwDONRaG_86upRYg",
      "number": 917,
      "title": "Docker fetch not working",
      "user": {
        "login": "zaheerahmad33",
        "id": 70321435,
        "node_id": "MDQ6VXNlcjcwMzIxNDM1",
        "avatar_url": "https://avatars.githubusercontent.com/u/70321435?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/zaheerahmad33",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2025-03-18T23:20:50Z",
      "updated_at": "2025-04-11T22:43:19Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nI build and ran the Dockerfile in src/fetch and ran the container\n\n`docker run -it fetch-server`\n\nIt's working fine but not able to initilize and response back!\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. `docker run -it fetch-server`\n2. Open the terminal/exec inside the container\n3. send the following to STDIN `printf '{\"jsonrpc\":\"2.0\",\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"1.0\",\"capabilities\":{},\"clientInfo\":{\"name\":\"test\",\"version\":\"1\"}},\"id\":\"1\"}\\n{\"jsonrpc\":\"2.0\",\"method\":\"tools/call\",\"params\":{\"name\":\"fetch\",\"arguments\":{\"url\":\"https://www.google.com\",\"max_length\":5000,\"raw\":true}},\"id\":\"fetch_google\"}\\n' > /proc/1/fd/0`\n4. View the logs\n5. It's not working and through the exception\n\n**Expected behavior**\nShould return the list of tools, and page fetch\n\n**Logs**\nIf applicable, add logs to help explain your problem.\n`{\"jsonrpc\":\"2.0\",\"id\":\"1\",\"result\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{\"experimental\":{},\"prompts\":{\"listChanged\":false},\"tools\":{\"listChanged\":false}},\"serverInfo\":{\"name\":\"mcp-fetch\",\"version\":\"1.2.0\"}}}\n\n\n  + Exception Group Traceback (most recent call last):\n  |   File \"/app/.venv/lib/python3.11/site-packages/mcp/server/stdio.py\", line 83, in stdio_server\n  |     yield read_stream, write_stream\n  |   File \"/app/.venv/lib/python3.11/site-packages/mcp_server_fetch/server.py\", line 285, in serve\n  |     await server.run(read_stream, write_stream, options, raise_exceptions=True)\n  |   File \"/app/.venv/lib/python3.11/site-packages/mcp/server/lowlevel/server.py\", line 424, in run\n  |     async with ServerSession(\n  |   File \"/app/.venv/lib/python3.11/site-packages/mcp/shared/session.py\", line 122, in __aexit__\n  |     return await self._task_group.__aexit__(exc_type, exc_val, exc_tb)\n  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  |   File \"/app/.venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py\", line 763, in __aexit__\n  |     raise BaseExceptionGroup(\n  | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)\n  +-+---------------- 1 ----------------\n    | Traceback (most recent call last):\n    |   File \"/app/.venv/lib/python3.11/site-packages/mcp/shared/session.py\", line 231, in _receive_loop\n    |     await self._received_request(responder)\n    |   File \"/app/.venv/lib/python3.11/site-packages/mcp/server/session.py\", line 143, in _received_request\n    |     raise RuntimeError(\n    | RuntimeError: Received request before initialization was complete\n    +------------------------------------`\n**Additional context**\nAdd any other context about the problem here.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/917/reactions",
        "total_count": 6,
        "+1": 4,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 2
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/905",
      "id": 2927997570,
      "node_id": "I_kwDONRaG_86uhbKC",
      "number": 905,
      "title": "Move Directory",
      "user": {
        "login": "r03t",
        "id": 118639422,
        "node_id": "U_kgDOBxJLPg",
        "avatar_url": "https://avatars.githubusercontent.com/u/118639422?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/r03t",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-18T10:38:59Z",
      "updated_at": "2025-03-18T10:40:13Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Tool doesn't understand move_file can be use for move directories",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/905/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/896",
      "id": 2926125659,
      "node_id": "I_kwDONRaG_86uaSJb",
      "number": 896,
      "title": "Confusing `search_files` function description leads to misunderstanding of its purpose",
      "user": {
        "login": "sebastien-rosset",
        "id": 16657278,
        "node_id": "MDQ6VXNlcjE2NjU3Mjc4",
        "avatar_url": "https://avatars.githubusercontent.com/u/16657278?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sebastien-rosset",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-03-17T19:15:06Z",
      "updated_at": "2025-04-26T14:48:12Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\n\nThe description of the `search_files` function is ambiguous and easily misinterpreted. It suggests it might search file contents (like grep) when it actually only searches file and directory names. Claude itself is misinterpreting the function to search content in files, rather than file names matching input patterns.\n\n*Why it's confusing*\nThe function description starts with \"Recursively search for files and directories matching a pattern.\" This phrasing is ambiguous - it could mean either:\n1. Search for files/directories whose names match a pattern (actual behavior)\n2. Search recursively through directories for files containing content that matches a pattern (grep-like behavior many users expect)\n\nThis ambiguity leads to confusion when users (and Claude) attempt to use the function to search file contents and receive \"No matches found\" despite knowing the content exists in the files.\n\n**To Reproduce**\n1. Install Claude desktop for Mac Version 0.8.1\n2. Install and configure the `filesystem` server. Cleanup npm cache just to be sure the latest version is installed.\n3. Ask Claude desktop to search for content in files. Or ask Claude to refactor code, which typically leads Claude to try to \"grep\" content recursively in a directory.\n4. Notice Claude uses the `search_files` function to find content inside the files. Notice no matching content is found.\n\n```json\n{\n  \"path\": \"/Users/my_userid/my_project_path/\",\n  \"pattern\": \"mysearch\"\n}\nNo matches found\n```\n\n**Expected behavior**\nClaude should not use the `search_files` function to search for content.\n\n**Additional context**\nBoth Claude and human users may misinterpret this function as a content search tool (like grep) rather than a file/directory name matcher. The suggested description makes the distinction clear from the beginning and explicitly notes that it doesn't search file contents.\n\n**Suggested functions**\n\n1. search_files_by_name:\n   \"Find files and directories whose names match a pattern. Searches recursively \n   through all subdirectories from the starting path. The search is case-insensitive \n   and matches partial file or directory names. Returns full paths to all items with \n   matching names. Great for finding files when you don't know their exact location. \n   Only searches within allowed directories.\"\n\n2. search_file_contents:\n   \"Search for text patterns within file contents. Recursively examines all files \n   under the specified directory and returns paths to files containing the search \n   pattern. Functions similar to 'grep' command. The search can be case-sensitive \n   or insensitive based on parameters. Returns matching file paths along with line \n   numbers and context. Only searches within allowed directories.\"",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/896/reactions",
        "total_count": 6,
        "+1": 6,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        2606
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/879",
      "id": 2923135791,
      "node_id": "I_kwDONRaG_86uO4Mv",
      "number": 879,
      "title": "Docker",
      "user": {
        "login": "Zyles",
        "id": 1741593,
        "node_id": "MDQ6VXNlcjE3NDE1OTM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1741593?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Zyles",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 7,
      "created_at": "2025-03-16T15:30:14Z",
      "updated_at": "2025-07-12T23:09:39Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "How do you get MCP on docker to work?\n\nIt just keeps dying:\n```\ndocs-mcp-server  | Docs MCP Server running on stdio\ndocs-mcp-server exited with code 0\ndocs-mcp-server  | Docs MCP Server running on stdio\ndocs-mcp-server exited with code 0\ndocs-mcp-server  | Docs MCP Server running on stdio\ndocs-mcp-server exited with code 0\ndocs-mcp-server  | Docs MCP Server running on stdio\ndocs-mcp-server exited with code 0\ndocs-mcp-server  | Docs MCP Server running on stdio\n```\n\nAnd how do you actually call a docker container without it running as a service on a port?\n\nI tried everything from docker exec to docker run.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/879/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/841",
      "id": 2917256687,
      "node_id": "I_kwDONRaG_86t4c3v",
      "number": 841,
      "title": "Implement Mechanism to Exclude Specific <div> Elements by ID or Class Name in Fetch MCP Server",
      "user": {
        "login": "cloudcerebro",
        "id": 97088161,
        "node_id": "U_kgDOBclyoQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/97088161?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/cloudcerebro",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-13T13:55:03Z",
      "updated_at": "2025-03-13T13:55:03Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Description:**\nWe propose enhancing the Fetch MCP Server by introducing a feature that allows users to exclude certain <div> elements from processing, based on their id or class attributes. This functionality would grant users finer control over the content fetched, particularly in scenarios where specific sections of a webpage are irrelevant or detrimental to the intended data extraction.\n\n**Problem Statement:**\nCurrently, when fetching content from webpages with extensive sidebars or navigation menus—such as a lengthy index on the left side—the server retrieves these sections in large chunks (e.g., 20,000 tokens at a time). This can lead to inefficiencies, as large language models (LLMs) may process these sizable, non-essential sections first and prematurely determine that the website is unsuitable for the query, thereby diverting to alternative approaches. This behavior hampers the effectiveness of data retrieval and processing, especially when the main content is overshadowed by voluminous ancillary sections.\n\n**Use Case:**\nConsider a webpage where the left sidebar contains an extensive index with numerous items, each enclosed within <div> elements with specific ids or class names. A user interested solely in the main content would benefit from the ability to exclude these sidebar <div> elements during the fetching process, ensuring that the LLM focuses on the pertinent information without being sidetracked by the irrelevant index items.\n\n**Proposed Solution:**\nIntroduce a configuration option within the Fetch MCP Server that enables users to specify a list of ids and/or class names corresponding to <div> elements they wish to exclude from processing. The server would then bypass these elements during the fetching phase. This could be implemented through:\n\t1.\t**Configuration File**: Allow users to define the ids and class names to exclude within the server’s configuration file.\n\t2.\t**API Parameters**: Introduce API parameters that accept arrays of ids and class names to exclude during a fetch request.\n\n**Benefits:**\n\t•\t**Enhanced Data Relevance**: By excluding non-essential <div> elements, the fetched content becomes more focused on the main subject matter, improving the quality of data processed by LLMs. ￼\n\t•\t**Optimized Token Utilization:** Reducing the amount of irrelevant content helps in staying within token limits of LLMs, thereby preventing premature termination of processing due to token overflows. ￼\n\t•\t**Improved Processing Efficiency:** With less extraneous data to handle, the overall efficiency of data processing workflows is enhanced, leading to faster and more accurate outcomes.\n\n**Potential Challenges:**\n\t•\t**Complexity in Implementation:** Accurately identifying and excluding specified <div> elements without disrupting the overall structure of the fetched content may require sophisticated parsing mechanisms.\n\t•\t**User Configuration Errors:** Incorrectly specified ids or class names could lead to unintended exclusions, necessitating robust validation and clear documentation to guide users in configuring exclusions appropriately.\n\n**References:**\nThe need to manage large content sections during data processing with LLMs has been discussed in various forums. For instance, strategies to handle large HTML documents for LLMs with limited token sizes have been explored, highlighting the importance of content segmentation to optimize processing efficiency.  ￼\n\n**Conclusion:**\nImplementing a feature to exclude specific <div> elements by id or class name in the Fetch MCP Server would significantly enhance its flexibility and usability. It would empower users to tailor the data fetching process to their specific needs, ensuring that LLMs process only relevant content, thereby improving the overall effectiveness of data retrieval and processing workflows.\n\nThank you for considering this feature request.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/841/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/799",
      "id": 2910567880,
      "node_id": "I_kwDONRaG_86te73I",
      "number": 799,
      "title": "sequentialthinking tool description beyond OpenAI length limitation",
      "user": {
        "login": "jamesfalkner",
        "id": 861894,
        "node_id": "MDQ6VXNlcjg2MTg5NA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/861894?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jamesfalkner",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-03-11T13:29:35Z",
      "updated_at": "2025-04-11T19:23:15Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nThe length of the description of the sequentialthinking server is longer than the max allowed length of tool descriptions when using some OpenAI models.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Pass the description of the sequentialthinking tool as part of a tool-enabled inference request to `gpt4o-mini`.\n\n**Expected behavior**\nNo errors, and the LLM is able to use the sequentialthinking tool\n\n**Logs**\nIn my case, I am using a client to send the completion requests, and that client uses the tool descriptions provided via the MCP server protocol to format the completion requests. When using sequentialthinking tool with `gpt40-mini`, due to the length of its description, errors happen such as:\n\n```\n- body: {\n  \"error\": {\n    \"message\": \"Invalid 'tools[26].function.description': string too long. Expected a string with maximum length 1024, but got a string with length 2780 instead.\",\n    \"type\": \"invalid_request_error\",\n    \"param\": \"tools[26].function.description\",\n    \"code\": \"string_above_max_length\"\n  }\n}\n```\nI cannot find any official documentation of this limitation.\n\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/799/reactions",
        "total_count": 4,
        "+1": 4,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/794",
      "id": 2908951905,
      "node_id": "I_kwDONRaG_86tYxVh",
      "number": 794,
      "title": "Filesystem Edit Logs",
      "user": {
        "login": "jclicky",
        "id": 63612868,
        "node_id": "MDQ6VXNlcjYzNjEyODY4",
        "avatar_url": "https://avatars.githubusercontent.com/u/63612868?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jclicky",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-11T03:18:05Z",
      "updated_at": "2025-04-26T14:48:11Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Feature Request (Claude Code and / or Claude Desktop MacOS):**\n\n- Filesystem edit logs in `.json` format\n- Track historic edits with context\n- Supports version control tracking w/out git\n- Filesystem logs can be read later to give successive chats immediate context into historic work\n- _Additional Product Enhancement for Desktop Claude_: Enable MacOS tag operability so any files can be tagged with tags to identify in the Finder UI any files which have been edited by Claude Desktop\n\nI asked Claude to provide me with a sample SOP that I could anchor to future Projects in the App / Web UI and/or point at if using Claude Code when it examines all files w/in a `/config` directory, and here's what Claude drew up.\n\nI think it's a pretty good first-pass:\n\n# Standard Operating Procedure: Claude Filesystem Activity Logging\n\n## Purpose and Scope\n\nThis document establishes the standard protocol for recording all filesystem operations performed by Claude within the user's environment. The procedure ensures consistent documentation of file creation, modification, and deletion activities for audit, security, and version control purposes.\n\n## Log File Location and Structure\n\n### Primary Log File\n\nClaude shall maintain a primary activity log at:\n```\n/path/to/project/claude_activity_log.json\n```\n\n### Secondary Log Files\n\nFor files subject to multiple modifications, Claude shall maintain differential logs at:\n```\n/path/to/project/logs/differential/{filename}_{timestamp}.json\n```\n\n## Log Format Specification\n\n### Primary Log Structure\n\nThe primary log file shall use the following JSON schema:\n\n```json\n{\n  \"entries\": [\n    {\n      \"timestamp\": \"YYYY-MM-DDThh:mm:ss.sssZ\",\n      \"action\": \"[CREATE|EDIT|DELETE]\",\n      \"filepath\": \"/absolute/path/to/file\",\n      \"filesize\": 12345,\n      \"checksum\": \"sha256-hash-of-file-contents\",\n      \"operation_details\": \"Human-readable description of operation\",\n      \"conversation_reference\": {\n        \"conversation_id\": \"MCP-YYYY-MM-DD-NNN\",\n        \"conversation_date\": \"YYYY-MM-DD\",\n        \"conversation_topic\": \"Brief topic description\",\n        \"conversation_first_query\": \"First few words of initial query\"\n      }\n    }\n  ]\n}\n```\n\n### Required Fields\n\n| Field | Description | Format/Type | Required |\n|-------|-------------|-------------|----------|\n| timestamp | UTC timestamp of operation | ISO 8601 | Yes |\n| action | Type of operation performed | Enum (CREATE, EDIT, DELETE) | Yes |\n| filepath | Full path to the affected file | String | Yes |\n| filesize | Size of file in bytes | Integer | Yes |\n| checksum | Hash of file contents | SHA-256 string | Yes |\n| operation_details | Description of changes | String | Yes |\n| conversation_reference | Metadata to identify originating conversation | Object | Yes |\n\n### Additional Fields for EDIT Operations\n\n| Field | Description | Format/Type | Required |\n|-------|-------------|-------------|----------|\n| previous_checksum | Hash of file before changes | SHA-256 string | Yes |\n| new_checksum | Hash of file after changes | SHA-256 string | Yes |\n| changes_summary | Brief summary of changes | String | Yes |\n\n### Conversation Reference Structure\n\n| Field | Description | Format/Type | Required |\n|-------|-------------|-------------|----------|\n| conversation_id | Unique identifier for referencing the conversation | String | Yes |\n| conversation_date | Date of the conversation | ISO 8601 (YYYY-MM-DD) | Yes |\n| conversation_topic | Brief description of conversation topic | String | Yes |\n| conversation_first_query | First few words of initial query | String | Yes |\n\n## Differential Log Structure\n\nFor text-based files that undergo modification, a differential log shall be maintained with the following structure:\n\n```json\n{\n  \"file\": \"/absolute/path/to/file\",\n  \"timestamp\": \"YYYY-MM-DDThh:mm:ss.sssZ\",\n  \"changes\": [\n    {\n      \"type\": \"[addition|deletion|modification]\",\n      \"line_number\": 42,\n      \"content\": \"Actual text content that was changed\"\n    }\n  ],\n  \"conversation_reference\": {\n    \"conversation_id\": \"MCP-YYYY-MM-DD-NNN\",\n    \"conversation_date\": \"YYYY-MM-DD\",\n    \"conversation_topic\": \"Brief topic description\",\n    \"conversation_first_query\": \"First few words of initial query\"\n  }\n}\n```\n\n## Implementation Procedures\n\n### 1. Log Initialization\n\nWhen Claude first interacts with the filesystem and no log exists:\n\n```json\n{\n  \"entries\": [],\n  \"log_created\": \"YYYY-MM-DDThh:mm:ss.sssZ\",\n  \"claude_version\": \"3.7 Sonnet\"\n}\n```\n\n### 2. Recording File Creation\n\nWhen creating a new file, Claude shall:\n1. Generate a SHA-256 checksum of the file contents\n2. Record the file size\n3. Add an entry to the log with action \"CREATE\"\n4. Include conversation reference metadata\n5. Provide appropriate operation_details\n\n### 3. Recording File Modifications\n\nWhen modifying an existing file, Claude shall:\n1. Generate a SHA-256 checksum of the file before modification\n2. Make the required changes\n3. Generate a new SHA-256 checksum after modification\n4. Create a differential log if the file is text-based\n5. Add an entry to the main log with action \"EDIT\"\n6. Include both checksums and a changes_summary\n7. Include conversation reference metadata\n\n### 4. Recording File Deletion\n\nWhen deleting a file, Claude shall:\n1. Generate a SHA-256 checksum of the file to be deleted\n2. Add an entry to the log with action \"DELETE\"\n3. Include the final checksum and size before deletion\n4. Include conversation reference metadata\n\n## Examples\n\n### Example 1: Creating a New File\n\n```json\n{\n  \"entries\": [\n    {\n      \"timestamp\": \"2024-05-15T14:42:15.326Z\",\n      \"action\": \"CREATE\",\n      \"filepath\": \"/path/to/project/instructions.md\",\n      \"filesize\": 2451,\n      \"checksum\": \"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1\",\n      \"operation_details\": \"Created new instruction document for MCP file management\",\n      \"conversation_reference\": {\n        \"conversation_id\": \"MCP-2024-05-15-001\",\n        \"conversation_date\": \"2024-05-15\",\n        \"conversation_topic\": \"MCP Implementation\",\n        \"conversation_first_query\": \"Can you help me set up\"\n      }\n    }\n  ]\n}\n```\n\n### Example 2: Modifying a Configuration File\n\n```json\n{\n  \"timestamp\": \"2024-05-15T14:45:22.118Z\",\n  \"action\": \"EDIT\",\n  \"filepath\": \"/path/to/project/config/config.json\",\n  \"filesize\": 758,\n  \"previous_checksum\": \"f6e5d4c3b2a1f0e9d8c7b6a5f4e3d2c1b0a9e8d7c6b5a4f3e2d1c0b9a8\",\n  \"new_checksum\": \"1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0\",\n  \"changes_summary\": \"Added new directory to mount points\",\n  \"operation_details\": \"Modified configuration to include access to additional folder\",\n  \"conversation_reference\": {\n    \"conversation_id\": \"MCP-2024-05-15-001\",\n    \"conversation_date\": \"2024-05-15\",\n    \"conversation_topic\": \"MCP Implementation\",\n    \"conversation_first_query\": \"Can you help me set up\"\n  }\n}\n```\n\n## Compliance Requirements\n\n1. All Claude instances must adhere to this logging format without exception\n2. Logs must be updated before file operations are committed\n3. Log entries must be appended in chronological order\n4. Fields must be populated with accurate data\n5. No log entries shall be modified or removed after creation\n\nThis Standard Operating Procedure shall be followed by all Claude instances operating within this environment regardless of conversation history or context.\n\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/794/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/767",
      "id": 2905357872,
      "node_id": "I_kwDONRaG_86tLD4w",
      "number": 767,
      "title": "Fetch extension fails with \"Unknown scheme for proxy URL URL('socks://127.0.0.1:2080/')\"",
      "user": {
        "login": "ch3rn0v",
        "id": 1066109,
        "node_id": "MDQ6VXNlcjEwNjYxMDk=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1066109?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ch3rn0v",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-09T11:02:24Z",
      "updated_at": "2025-03-09T11:02:24Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nI installed https://github.com/block/goose/ cli and use ollama to manage a local LLM.\nAdding fetch extension worked fine.\nI tried both `uvx mcp-server-fetch` and `uvx mcp-server-fetch --ignore-robots-txt` to run extension.\nEither way fetching any url ends up with `Unknown scheme for proxy URL URL('socks://127.0.0.1:2080/')`. This is somehow marked as `\"status\":\"success\"` in the tool result.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Install block/goose cli\n2. Set up any llm provider\n3. Install and add fetch extension\n4. Run goose and ask something like this: \"read this doc - https://block.github.io/goose/docs/tutorials/custom-extensions/\"\n\n**Logs**\n```json\n{\"role\":\"assistant\",\"created\":1741517422,\"content\":[{\"type\":\"text\",\"text\":\"\"},{\"type\":\"toolRequest\",\"id\":\"call_7jc59c1n\",\"toolCall\":{\"status\":\"success\",\"value\":{\"name\":\"mcp_server_fetch__fetch\",\"arguments\":{\"max_length\":2048,\"url\":\"https://block.github.io/goose/docs/tutorials/custom-extensions/\"}}}}]}\n{\"role\":\"user\",\"created\":1741517422,\"content\":[{\"type\":\"toolResponse\",\"id\":\"call_7jc59c1n\",\"toolResult\":{\"status\":\"success\",\"value\":[{\"type\":\"text\",\"text\":\"Unknown scheme for proxy URL URL('socks://127.0.0.1:2080/')\"}]}}]}\n```\n\n**Expected behavior**\nIt should return the web page's contents upon a correct call. It shouldn't return status: success if the page's content isn't available.\n\n**Additional context**\nSometimes it does work: https://github.com/block/goose/issues/1329 . But I'm yet to witness it myself.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/767/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/754",
      "id": 2901928233,
      "node_id": "I_kwDONRaG_86s9-kp",
      "number": 754,
      "title": "Security Proposal: Adopt Best Practices for Credential Management in MCP Server and Open-Source Implementation",
      "user": {
        "login": "chenxi-neo",
        "id": 122535561,
        "node_id": "U_kgDOB02-iQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/122535561?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/chenxi-neo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-03-07T03:40:47Z",
      "updated_at": "2026-02-12T06:02:41Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# Security Proposal: Adopt Best Practices for Credential Management in MCP Server and Open-Source Implementation\n\n## Description\n\nHi MCP Community,\n\nI would like to propose a security enhancement for MCP Server to address the risks associated with credential management, particularly for accessing various data sources. By adopting industry best practices for both temporary and long-term credentials, we can significantly reduce the potential risks of credential leakage and improve the overall security posture of MCP Server.\n\n---\n\n### 1. Temporary Credentials\n\nMCP Server often needs to access data sources using temporary, rotatable credentials. To ensure secure and efficient management of these credentials, I recommend implementing the following industry best practices:\n\n#### A. Workload Identity-Based Access\n\nWhen MCP Server acts as a workload to access data sources, the following mechanisms should be adopted:\n- **GCP Workload Identity Federation:** Allow workloads to authenticate directly with GCP services without relying on long-term credentials.\n- **Azure Entra Client Credential Auth:** Use Azure Entra (formerly Azure AD) for secure authentication and token issuance.\n- **AWS EC2 Instance Metadata:** Leverage AWS EC2 instance metadata for retrieving temporary credentials.\n- **Kubernetes Integration with AWS STS:** Implement `AssumeRoleWithWebIdentity` to enable Kubernetes service accounts to exchange tokens for AWS STS credentials.\n\nThese approaches ensure that credentials are short-lived, automatically rotated, and tied to specific workloads, minimizing the risk of misuse.\n\n#### B. User Identity-Based Access\n\nWhen MCP Server acts on behalf of a user (e.g., Claude Desktop Client or Cursor Client calling a locally deployed MCP Server), the following best practice should be implemented:\n- **OAuth 2.0 Device Flow:** Use OAuth 2.0 Device Flow to securely authenticate users and obtain access tokens without exposing credentials.\n\n---\n\n### 2. Long-Term Credentials\n\nIn cases where long-term credentials are unavoidable (e.g., legacy systems or APIs that rely on static credentials like username/password or API keys), MCP Server should enforce strict security measures:\n- **Secure Storage:** Store long-term credentials in a secure vault system such as HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, or GCP Secret Manager.\n- **Access Control:** Implement strict access controls and audit logging for credential retrieval and usage.\n- **Encryption:** Ensure credentials are encrypted at rest and in transit.\n\n---\n\n### Proposal\n\nTo align MCP Server with industry standards and enhance its security, I propose the following:\n1. Officially adopt the best practices outlined above for managing temporary and long-term credentials.\n2. Open-source the implementation of these security features to enable community collaboration, transparency, and continuous improvement.\n\nBy open-sourcing the implementation, the MCP community can actively contribute to and review the security mechanisms, ensuring a robust and trustworthy solution.\n\n---\n\n### Next Steps\n\n1. Evaluate the feasibility of integrating the suggested mechanisms for temporary and long-term credential management.\n2. Develop a roadmap for implementing secure credential storage and access control.\n3. Open-source the implementation to foster community involvement and feedback.\n\nI believe these improvements will significantly strengthen MCP Server's security and align it with industry best practices. I look forward to hearing the community's thoughts and feedback on this proposal!\n\nBest regards",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/754/reactions",
        "total_count": 20,
        "+1": 20,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/751",
      "id": 2900574542,
      "node_id": "I_kwDONRaG_86s40FO",
      "number": 751,
      "title": "long output",
      "user": {
        "login": "Skywalker-Harrison",
        "id": 63527319,
        "node_id": "MDQ6VXNlcjYzNTI3MzE5",
        "avatar_url": "https://avatars.githubusercontent.com/u/63527319?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Skywalker-Harrison",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-06T14:29:26Z",
      "updated_at": "2025-03-06T14:29:26Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# Feature Request: Support for Long Text Output in MCP on Claude Desktop\n\n## Problem Description\nCurrently, when using MCP on Claude Desktop, if the length of the text output exceeds 20,000 characters, an error occurs. The error is similar to the one described in [issue #719](https://github.com/modelcontextprotocol/servers/issues/719), and an \"Unexpected End JSON\" error pops up. This limitation is frustrating when working with long text outputs, as it interrupts the workflow and prevents the completion of tasks that require extensive text generation.\n\n## Desired Solution\nI would like MCP on Claude Desktop to support long text outputs without encountering errors. Specifically, the system should be able to handle text outputs significantly longer than 20,000 characters, ensuring smooth and uninterrupted operation.\n\n## Alternatives Considered\n- **Chunking the Output:** Manually splitting the text into smaller chunks to avoid hitting the character limit. However, this is not ideal as it requires additional effort and can disrupt the flow of the generated content. I am hoping that Claude add this feature to automatically trunking the long outputs. \n- **Using a Different Platform:** Switching to another platform that supports longer text outputs. However, this is not preferable due to the specific features and integrations offered by MCP on Claude Desktop.\n\n## Additional Context\nHere are some screenshots or logs that illustrate the issue:\n\n\n\n<img width=\"646\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/bba6396f-17fa-45f6-9b5b-787694f1a99d\" />\n\n\n\nAny additional context or information that could help in resolving this issue would be greatly appreciated.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/751/reactions",
        "total_count": 8,
        "+1": 8,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/735",
      "id": 2895707420,
      "node_id": "I_kwDONRaG_86smP0c",
      "number": 735,
      "title": "\"search_files\" tool of Filesystem example MCP server does not work as expected",
      "user": {
        "login": "Finndersen",
        "id": 17341337,
        "node_id": "MDQ6VXNlcjE3MzQxMzM3",
        "avatar_url": "https://avatars.githubusercontent.com/u/17341337?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Finndersen",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-03-04T23:39:25Z",
      "updated_at": "2025-07-28T02:40:05Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nIt is expected that the `pattern` argument of the `search_files` tool would support glob/regex style wildcard patterns, e.g. \"*.py\", but it does not.\n\nLooking at the [implementation](https://github.com/modelcontextprotocol/servers/blob/main/src/filesystem/index.ts#L217) it is easy to see why, for some reason it just does a basic substring inclusion test instead of a proper glob `minimatch()` like it does for the `excludePatterns` argument.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Start Filesystem MCP and connect client\n2. Try use `search_files` tool providing `pattern` argument with glob/regex style wildcard pattern  e.g. \"*.py\"\n3. get \"No matches found\" even when there are files that match\n\n**Expected behavior**\n`search_files` tool  `pattern` argument should support glob/regex style wildcard patterns\n\nI'm planning on creating a fix for this soon!",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/735/reactions",
        "total_count": 2,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 2,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/734",
      "id": 2894931708,
      "node_id": "I_kwDONRaG_86sjSb8",
      "number": 734,
      "title": "File system tools unable to traverse symlinked directories beyond top level",
      "user": {
        "login": "G-bit94",
        "id": 57388820,
        "node_id": "MDQ6VXNlcjU3Mzg4ODIw",
        "avatar_url": "https://avatars.githubusercontent.com/u/57388820?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/G-bit94",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-04T17:10:02Z",
      "updated_at": "2025-07-28T02:40:13Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nThe file system tools can't access child directories within a symlinked directory. While the tools can successfully list the contents of the symlinked directory itself, any attempt to access subdirectories results in an error claiming the parent directory doesn't exist.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n\n- Create a symbolic link to a directory (e.g., MCP_Servers in MCP_Root)\n- Use file system tools to access the symlinked directory (succeeds)\n- Attempt to access any subdirectory within the symlinked directory (fails)\n- Error message states that the parent directory doesn't exist\n\n**Expected behavior**\nThe file system tools should be able to traverse the entire directory structure through the symlink, not just the top level.\n\n**Logs**\n`> list_directory(\"F:/MCP_Root/MCP_Servers\")\n[DIR] .git\n[FILE] .gitattributes\n[DIR] .github\n[FILE] .gitignore\n[FILE] .npmrc\n[FILE] CODE_OF_CONDUCT.md\n[FILE] CONTRIBUTING.md\n[FILE] LICENSE\n[DIR] node_modules\n[FILE] package-lock.json\n[FILE] package.json\n[FILE] README.md\n[DIR] scripts\n[FILE] SECURITY.md\n[DIR] src\n[FILE] tsconfig.json\n\n> list_directory(\"F:/MCP_Root/MCP_Servers/src\")\nError: Parent directory does not exist: F:\\MCP_Root\\MCP_Servers\n\n> read_file(\"F:/MCP_Root/MCP_Servers/src/filesystem/README.md\")\nError: Parent directory does not exist: F:\\MCP_Root\\MCP_Servers\\src\\filesystem`\n\n**Additional context**\nThis issue prevents programmatic access to configuration details and documentation within the server implementation directories. The symlink appears to be valid as accessing the top-level directory works, but the link cannot be followed deeper into the structure.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/734/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/719",
      "id": 2889992342,
      "node_id": "I_kwDONRaG_86sQciW",
      "number": 719,
      "title": "Requested timeout",
      "user": {
        "login": "Skywalker-Harrison",
        "id": 63527319,
        "node_id": "MDQ6VXNlcjYzNTI3MzE5",
        "avatar_url": "https://avatars.githubusercontent.com/u/63527319?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Skywalker-Harrison",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-03-03T02:18:02Z",
      "updated_at": "2025-03-03T16:11:31Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nHi, I encountered some error when running my own mcp server.\nI tried to install my own image inference structure to my computer (using macos, and mps for inference), after I installed the dependencies as required, the log of my server just warned me 32001 Error.\n\n\n\n**Logs**\n```\n2025-03-03T02:11:56.989Z [screenparser] [info] Initializing server...\n2025-03-03T02:11:56.993Z [screenparser] [info] Server started and connected successfully\n2025-03-03T02:11:57.036Z [screenparser] [info] Message from client: {\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"claude-ai\",\"version\":\"0.1.0\"}},\"jsonrpc\":\"2.0\",\"id\":0}\nDownloading scipy (21.3MiB)\nDownloading easyocr (2.7MiB)\nDownloading scikit-learn (10.6MiB)\nDownloading opencv-python-headless (35.6MiB)\nDownloading numpy (13.3MiB)\nDownloading opencv-contrib-python (44.1MiB)\nDownloading torchvision (1.7MiB)\nDownloading shapely (1.3MiB)\nDownloading cython (1.1MiB)\nDownloading scikit-image (12.6MiB)\nDownloading lxml (7.8MiB)\nDownloading rapidfuzz (1.4MiB)\nDownloading rapidfuzz (1.4MiB)\n Downloaded cython\n Downloaded shapely\n Downloaded rapidfuzz\n Downloaded torchvision\n Downloaded cython\n Downloaded shapely\n Downloaded easyocr\n Downloaded rapidfuzz\n Downloaded torchvision\n Downloaded easyocr\n Downloaded lxml\n Downloaded scikit-learn\n Downloaded lxml\n Downloaded scikit-image\n Downloaded numpy\n2025-03-03T02:12:55.939Z [screenparser] [info] Message from client: {\"jsonrpc\":\"2.0\",\"method\":\"notifications/cancelled\",\"params\":{\"requestId\":0,\"reason\":\"Error: MCP error -32001: Request timed out\"}}\n2025-03-03T02:12:55.940Z [screenparser] [info] Client transport closed\n2025-03-03T02:12:55.941Z [screenparser] [info] Server transport closed\n2025-03-03T02:12:55.941Z [screenparser] [info] Client transport closed\n2025-03-03T02:12:55.941Z [screenparser] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log.\n2025-03-03T02:12:55.941Z [screenparser] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) {\"context\":\"connection\"}\n2025-03-03T02:12:55.950Z [screenparser] [info] Server transport closed\n2025-03-03T02:12:55.950Z [screenparser] [info] Client transport closed\n2025-03-03T02:12:57.034Z [screenparser] [info] Message from client: {\"jsonrpc\":\"2.0\",\"method\":\"notifications/cancelled\",\"params\":{\"requestId\":0,\"reason\":\"Error: MCP error -32001: Request timed out\"}}\n2025-03-03T02:12:57.035Z [screenparser] [info] Client transport closed\n2025-03-03T02:12:57.036Z [screenparser] [info] Server transport closed\n2025-03-03T02:12:57.036Z [screenparser] [info] Client transport closed\n2025-03-03T02:12:57.036Z [screenparser] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log.\n2025-03-03T02:12:57.036Z [screenparser] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) {\"context\":\"connection\"}\n2025-03-03T02:12:57.043Z [screenparser] [info] Server transport closed\n2025-03-03T02:12:57.044Z [screenparser] [info] Client transport closed\n```\n**Additional context**\nI am thinking this is due to the dependencies, but the error information from the log is not sufficient. \n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/719/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/711",
      "id": 2889657894,
      "node_id": "I_kwDONRaG_86sPK4m",
      "number": 711,
      "title": "[Filesystem]  create_directory",
      "user": {
        "login": "slk333",
        "id": 23578949,
        "node_id": "MDQ6VXNlcjIzNTc4OTQ5",
        "avatar_url": "https://avatars.githubusercontent.com/u/23578949?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/slk333",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-02T16:48:18Z",
      "updated_at": "2025-04-26T15:17:25Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nIt fails to create directories recursively aka nested directory at once, because the function `validatePath` will throw if the directory we want to create has no parent, which is the case in such scenario.\n\nhttps://github.com/modelcontextprotocol/servers/blob/ddffd2325d56ef8cf70d951f8f96f8dd1732b07e/src/filesystem/index.ts#L57\n\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Try to create a nested directory by giving the full path to claude\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Logs**\nIf applicable, add logs to help explain your problem.\n\n**Additional context**\nAdd any other context about the problem here.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/711/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/709",
      "id": 2889436254,
      "node_id": "I_kwDONRaG_86sOUxe",
      "number": 709,
      "title": "Make the installation and deployment process more standardized",
      "user": {
        "login": "Alien-agent-bird",
        "id": 166526757,
        "node_id": "U_kgDOCez_JQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/166526757?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Alien-agent-bird",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-03-02T09:32:35Z",
      "updated_at": "2025-03-02T09:32:35Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "The function call of LLM has been standardized and expanded, but the installation and deployment methods of MCP servers have not been standardized, which often causes frustration for users. It is hoped that there could be a visual local installation and management tool.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/709/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/703",
      "id": 2888777355,
      "node_id": "I_kwDONRaG_86sLz6L",
      "number": 703,
      "title": "[Feature request] [filesystem] unzip file",
      "user": {
        "login": "slk333",
        "id": 23578949,
        "node_id": "MDQ6VXNlcjIzNTc4OTQ5",
        "avatar_url": "https://avatars.githubusercontent.com/u/23578949?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/slk333",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-03-01T09:52:20Z",
      "updated_at": "2025-04-26T15:17:24Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "there should be a command called `unzip_file`",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/703/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/699",
      "id": 2888109202,
      "node_id": "I_kwDONRaG_86sJQyS",
      "number": 699,
      "title": "Path duplication bug: Drive letter doubled (C:\\C:) when saving Google Drive credentials on Windows",
      "user": {
        "login": "musoukun",
        "id": 35359979,
        "node_id": "MDQ6VXNlcjM1MzU5OTc5",
        "avatar_url": "https://avatars.githubusercontent.com/u/35359979?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/musoukun",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2025-02-28T21:43:16Z",
      "updated_at": "2026-02-12T15:15:48Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nPath duplication bug in Google Drive MCP server causing authentication failure. The credential file path is incorrectly constructed with a duplicated drive letter (C:\\C:\\) on Windows systems, preventing proper authentication.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Set up Google Drive MCP server on Windows\n2. Run the authentication flow using `node ./dist auth`\n3. Complete the OAuth process in browser\n4. Attempt to use the server with Claude desktop app\n\n**Expected behavior**\nThe credential file should be saved with the correct path structure (C:\\Users\\...) and the server should properly authenticate with Google Drive.\n\n**Logs**\n```\nError: ENOENT: no such file or directory, open 'C:\\C:\\Users\\w\\npm-cache\\_npx\\901beb8b1a496dd2\\node_modules\\.gdrive-server-credentials.json'\n    at Object.writeFileSync (node:fs:2426:20)\n    at authenticateAndSaveCredentials (file:///C:/Users/w/npm-cache/_npx/901beb8b1a496dd2/node_modules/@modelcontextprotocol/server-gdrive/dist/index.js:154:8)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5) {\n  errno: -4058,\n  code: 'ENOENT',\n  syscall: 'open',\n  path: 'C:\\\\C:\\\\Users\\\\w\\\\npm-cache\\\\_npx\\\\901beb8b1a496dd2\\\\node_modules\\\\.gdrive-server-credentials.json'\n}\n```\n\n**Additional context**\nThe issue appears to be in the path handling code when constructing credential paths. The problem specifically occurs in the `authenticateAndSaveCredentials` function when using `fileURLToPath` and `path.join` together on Windows systems. The code is using path manipulations that seem to be causing drive letter duplication (C:\\C:\\) in the final path.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/699/reactions",
        "total_count": 3,
        "+1": 3,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/692",
      "id": 2885643262,
      "node_id": "I_kwDONRaG_86r_2v-",
      "number": 692,
      "title": "Memory MCP ignores custom storage path setting",
      "user": {
        "login": "Fionhurong",
        "id": 196153653,
        "node_id": "U_kgDOC7ERNQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/196153653?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Fionhurong",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 10,
      "created_at": "2025-02-27T21:27:48Z",
      "updated_at": "2025-10-16T08:57:52Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "I've been trying to configure the MCP memory server to store data in a custom location, but it continues to store the memory.json file in the NPX temporary directory instead.\n\n### Configuration\nIn my Claude desktop config file, I've specified a custom path:\n\n```json\n\"memory\": {\n  \"command\": \"npx\",\n  \"args\": [\n    \"-y\",\n    \"@modelcontextprotocol/server-memory\"\n  ],\n  \"env\": {\n    \"MEMORY_FILE_PATH\": \"/Users/XX/Library/Application Support/Claude/mcp/memory.json\"\n  }\n}\n```\n\n### Actual Behavior\nDespite setting the `MEMORY_FILE_PATH` environment variable, the memory.json file is still being created in the NPX temporary directory:\n```\n/Users/XX/.npm/_npx/15b07286cbcc3329/node_modules/@modelcontextprotocol/server-memory/dist/memory.json\n```\n\n### Additional Information\n- I've created the target directory and ensured it has appropriate permissions\n- The memory functionality works correctly, but uses the wrong file location\n- Claude can read/write to the temporary file location, but this isn't persistent\n\nCan someone help explain why the environment variable isn't being recognized, or if there's a different way to specify a custom storage location? This is concerning because NPX temporary directories may be cleaned up, potentially losing all memory data.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/692/reactions",
        "total_count": 15,
        "+1": 14,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 1
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/672",
      "id": 2876281261,
      "node_id": "I_kwDONRaG_86rcJGt",
      "number": 672,
      "title": "Set permission for tool required or not",
      "user": {
        "login": "Mehdi-Bl",
        "id": 8613869,
        "node_id": "MDQ6VXNlcjg2MTM4Njk=",
        "avatar_url": "https://avatars.githubusercontent.com/u/8613869?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Mehdi-Bl",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-02-24T22:14:11Z",
      "updated_at": "2025-02-24T22:14:11Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nLike Claude code agents, I want the MCP tools to not default as requiring permissions, would be nice to set on the SDK side the ability to authorize reading capabilities like in Claude code.\nAnd eventually keep the authorization to dangerous edit/write/delete/execution as you decide for the tool.\nOther exemple If I have a tool for DB, I should not need to allow reading schema, list tables. But running queries.\n\n**Describe the solution you'd like**\nHave a meta attribute in the tool to allow it by default.\n\n**Describe alternatives you've considered**\nOr have that on Claude Desktop? But still how Claude desktop will know if a tool is read only. That may require it persist it after restarts. \n\n**Additional context**\nN/A\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/672/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/659",
      "id": 2872890440,
      "node_id": "I_kwDONRaG_86rPNRI",
      "number": 659,
      "title": "mcp-server-git: add `git_merge` tool",
      "user": {
        "login": "hesreallyhim",
        "id": 172150522,
        "node_id": "U_kgDOCkLO-g",
        "avatar_url": "https://avatars.githubusercontent.com/u/172150522?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/hesreallyhim",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-02-23T03:29:31Z",
      "updated_at": "2025-02-23T03:29:31Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nI've been using `mcp-server-git` for local development, it's freakin' awesome, great job everyone. But I don't see `git_merge` as a tool, I'm wondering if there is any good reason why it's not included at the moment? I can do `checkout`, `status`, `commit`, etc. so it seems like it would be a great thing for my local workflow.\n\n**Describe the solution you'd like**\nAdd a `git_merge` tool that takes these inputs:\n\n`repo_path` (string): Path to Git repository\n`source_branch` (string): Name of branch to merge FROM. (`git merge foo`) if `source_branch` = `foo`\n`target_branch` (string): Name of the branch to merge INTO (by default, the current working branch)\n`ff-only` (boolean): Whether to require the merge to be `ff-only` (`true` by default)\n`squash` (boolean): Whether the merge should be a `squash` (`false` by default)\nReturns: Confirmation of `git merge <source_branch> --ff-only` command, or a message describing why the merge failed (merge conflict encountered, merge is not fast-forward when `ff-only = true`, `source_branch` does not exist), etc.\n\nIf any of these conditions are not met, or there are conflicts, the merge will be aborted with `git merge --abort`.\n\n**Describe alternatives you've considered**\nNone (or just do it manually).\n\n**Additional context**\nFor an initial implementation, due to the nuances of merging, the tool can be configured to ONLY allow `ff-only` from `source_branch` to `target_branch`, where `target_branch` is the current checked-out branch, and will fail if there are any conflicts, if the merge is not fast-forward, if `target_branch` is not the current branch (as revealed by `git_status`), etc. Basically, this will ONLY succeed if I have a local branch `dev` and I am on `main` and I can successfully run `git merge dev --ff-only`. I can imagine a lot of ways to enhance this tool, but this would still be a really useful addition, even in this primitive form.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/659/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/644",
      "id": 2866339904,
      "node_id": "I_kwDONRaG_86q2OBA",
      "number": 644,
      "title": "\"Not connected\" error",
      "user": {
        "login": "KikeVen",
        "id": 18605904,
        "node_id": "MDQ6VXNlcjE4NjA1OTA0",
        "avatar_url": "https://avatars.githubusercontent.com/u/18605904?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/KikeVen",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359497168,
          "node_id": "LA_kwDONRaG_88AAAAB8kPN0A",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-sequentialthinking",
          "name": "server-sequentialthinking",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Sequential Thinking MCP server - src/sequentialthinking"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 9,
      "created_at": "2025-02-20T14:32:33Z",
      "updated_at": "2025-07-28T02:39:55Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "On Windows 11:\n\nI was unable to successfully set up the Sequential Thinking MCP server. I encountered a \"Not connected\" error despite trying various configuration changes and troubleshooting steps. I suspect there might be a deeper issue with the MCP server setup or the extension's handling of MCP servers that I'm unable to resolve with the available tools and information.\n\nWhen I run:\n\n```bash\nnpx -y @modelcontextprotocol/server-sequential-thinking\n```\nI get : `Sequential Thinking MCP Server running on stdio`\n\nif cline runs it: \n`Error\nError executing MCP tool:\nNot connected`\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/644/reactions",
        "total_count": 8,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 8
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/632",
      "id": 2858470621,
      "node_id": "I_kwDONRaG_86qYMzd",
      "number": 632,
      "title": "Configurable write permissions for filesystem server",
      "user": {
        "login": "gar1t",
        "id": 184949,
        "node_id": "MDQ6VXNlcjE4NDk0OQ==",
        "avatar_url": "https://avatars.githubusercontent.com/u/184949?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/gar1t",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-02-17T17:39:17Z",
      "updated_at": "2025-04-26T15:17:23Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\n\nI'd like to run the filesystem server in a read only mode.\n\n**Describe alternatives you've considered**\n\nI need to copy any directories that I want to protect from writes to a new directory and mark those files as read only. If anything is written to, it generates an error. As a workaround I put the directory copy under revision control so I can see what was changed and revert it.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/632/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/628",
      "id": 2855477124,
      "node_id": "I_kwDONRaG_86qMx-E",
      "number": 628,
      "title": ".git folder staged by running 'git add .'",
      "user": {
        "login": "vekazt",
        "id": 61658264,
        "node_id": "MDQ6VXNlcjYxNjU4MjY0",
        "avatar_url": "https://avatars.githubusercontent.com/u/61658264?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/vekazt",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2025-02-15T13:33:00Z",
      "updated_at": "2025-05-18T22:44:33Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\nClaude called `git add .`, which resulted in the .git folder itself being added to git\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Get Claude to call `git add .` (this can happen in multiple ways, so not 'exact steps')\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Logs**\nIf applicable, add logs to help explain your problem.\n`git status\nOn branch main\nYour branch is ahead of 'origin/main' by 2 commits.\n  (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n  (use \"git add/rm <file>...\" to update what will be committed)\n  (use \"git restore <file>...\" to discard changes in working directory)\n        modified:   ./.git/config\n        modified:   ./.git/index\n        modified:   ./.git/logs/HEAD\n`\n\n**Additional context**\nAdd any other context about the problem here.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/628/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/619",
      "id": 2849623360,
      "node_id": "I_kwDONRaG_86p2c1A",
      "number": 619,
      "title": "[Git] add ability to set user name and email via env variable",
      "user": {
        "login": "xiangma9712",
        "id": 49736813,
        "node_id": "MDQ6VXNlcjQ5NzM2ODEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/49736813?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/xiangma9712",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-02-13T00:06:34Z",
      "updated_at": "2025-02-13T00:49:58Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\n> A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\n\nWhen I check the commit made by the MCP run by docker, committer is shown as \"root\" not respect host git config.\n\n**Describe the solution you'd like**\n> A clear and concise description of what you want to happen.\n\nAdd environment variable which MCP server respect and use for git operation\n\n**Describe alternatives you've considered**\n> A clear and concise description of any alternative solutions or features you've considered.\n\n- mount git config config file?\n\n**Additional context**\n> Add any other context or screenshots about the feature request here.\n\nNothing",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/619/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/618",
      "id": 2849041175,
      "node_id": "I_kwDONRaG_86p0OsX",
      "number": 618,
      "title": "Feature Request: Add push to git mcp",
      "user": {
        "login": "digitalbuddha",
        "id": 4528092,
        "node_id": "MDQ6VXNlcjQ1MjgwOTI=",
        "avatar_url": "https://avatars.githubusercontent.com/u/4528092?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/digitalbuddha",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8359493992,
          "node_id": "LA_kwDONRaG_88AAAAB8kPBaA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-git",
          "name": "server-git",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Git MCP server - src/git"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-02-12T18:26:08Z",
      "updated_at": "2025-07-03T13:51:46Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nI am using another mcp to open pull requests, that mcp needs the branch to exist remotely first\n**Describe the solution you'd like**\nI'd like to be able to have git mcp to be able to push my branch/create a new branch remotely\n\n**Describe alternatives you've considered**\nFork gitmcp and add push myself\n\n**Additional context**\nAdd any other context or screenshots about the feature request here.\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/618/reactions",
        "total_count": 6,
        "+1": 6,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        2961
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/604",
      "id": 2837134599,
      "node_id": "I_kwDONRaG_86pGz0H",
      "number": 604,
      "title": "Running mcp-server-git with uvx gives full disk access/--repository param is ignored",
      "user": {
        "login": "joshstrange",
        "id": 462796,
        "node_id": "MDQ6VXNlcjQ2Mjc5Ng==",
        "avatar_url": "https://avatars.githubusercontent.com/u/462796?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/joshstrange",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-02-07T03:14:38Z",
      "updated_at": "2025-02-15T23:36:28Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\n[`mcp-server-git` ](https://github.com/modelcontextprotocol/servers/tree/main/src/git) does not restrict repo paths to the repo specified. \n\nThe [docs](https://github.com/modelcontextprotocol/servers/blob/main/src/git/README.md) have this code block:\n\n```json\n\"mcpServers\": {\n  \"git\": {\n    \"command\": \"uvx\",\n    \"args\": [\"mcp-server-git\", \"--repository\", \"path/to/git/repo\"]\n  }\n}\n``` \n\nWhich would imply you are limiting the mcp server to that repository but in practice the only thing `--repository` is used for is this ([link](https://github.com/modelcontextprotocol/servers/blob/5e2300e3c4bab65a7730319884541e1e4ab88eab/src/git/src/mcp_server_git/server.py#L153-L159)]:\n\n```python\nif repository is not None:\n\ttry:\n\t\tgit.Repo(repository)\n\t\tlogger.info(f\"Using repository at {repository}\")\n\texcept git.InvalidGitRepositoryError:\n\t\tlogger.error(f\"{repository} is not a valid Git repository\")\n\t\treturn\n```\n\nAfter that codeblock it doesn't seem to be used. All the commands take a \"repo_path\" which can be anywhere on your machine. Coupled with \"git_init\" you can effectively read any file on the computer as long as you have the permissions to init a git repo.\n\nIf this is expected behavior then maybe it would be nice to add something to the docs about it.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. `mkdir reproduce-repo`\n2. `cd reproduce-repo`\n3. `git init`\n5. `npx @modelcontextprotocol/inspector uvx mcp-server-git --repository \"path/to/your/repo\"`\n6. Open Browser and go to [http://localhost:5173](http://localhost:5173)\n7. Select \"STDIO\" and click Connect\n8. List Tools\n9. Run the `git_status` tool and enter a path different from what you passed in to the `--repository` flag\n\n\n![Image](https://github.com/user-attachments/assets/91a690ab-0eb0-4998-8589-fc3b53125c99)\n\n**Expected behavior**\nOne or more of the following:\n\n* Either a clear message that this tool has full access and should only be use with Docker\n\nor\n\n*  Allow for limiting the MCP server's access\n\nIdeally you'd supply a base path (or paths) and it would be able to read/write to any repos in that path to allow for features like #188 (on purpose).\n\n**Logs**\nN/A\n\n**Additional context**\nN/A",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/604/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/577",
      "id": 2821394201,
      "node_id": "I_kwDONRaG_86oKw8Z",
      "number": 577,
      "title": "Update reference servers to keep up with the releases of the SDKs",
      "user": {
        "login": "djwessel",
        "id": 8520393,
        "node_id": "MDQ6VXNlcjg1MjAzOTM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/8520393?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/djwessel",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-01-30T17:19:34Z",
      "updated_at": "2025-01-30T17:19:34Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nA lot of the implementations are using older versions of the typescript and python SDK. \n\nMost typescript servers are on 1.0.1 or even 0.5.0 where as the current release as of writing is 1.4.1.\n\n\n**Describe the solution you'd like**\n\nIt would be nice to capture examples of working with the new simplified APIs of FastMCP and the complement on the typescript side https://github.com/modelcontextprotocol/typescript-sdk/pull/117 \n\nWhat is the vision for keeping this repository up-to-date with the changes on the SDK side (especially as breaking changes start to get introduced to the SDKs that are not represented in the reference implementations)?",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/577/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/576",
      "id": 2821373347,
      "node_id": "I_kwDONRaG_86oKr2j",
      "number": 576,
      "title": "Add Streamable HTTP support to all reference servers",
      "user": {
        "login": "djwessel",
        "id": 8520393,
        "node_id": "MDQ6VXNlcjg1MjAzOTM=",
        "avatar_url": "https://avatars.githubusercontent.com/u/8520393?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/djwessel",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-01-30T17:09:12Z",
      "updated_at": "2025-07-03T23:51:10Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nWhen I first started working with the reference servers, I was frustrated that most of the servers only supported stdio transport. If the reference servers are intended to also act as a reference for people looking to implement their own custom servers, having examples of how to change the transport, especially in the typescript-based servers, would be beneficial.\n\n**Describe the solution you'd like**\nAll reference servers have a way to run them with both stdio and sse transport. For the typescript servers, the [everything implementation](https://github.com/modelcontextprotocol/servers/blob/main/src/everything/sse.ts) could be used as reference.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/576/reactions",
        "total_count": 10,
        "+1": 10,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/533",
      "id": 2793332624,
      "node_id": "I_kwDONRaG_86mft-Q",
      "number": 533,
      "title": "Read Image File for Filesystem server",
      "user": {
        "login": "cliffhall",
        "id": 871933,
        "node_id": "MDQ6VXNlcjg3MTkzMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/cliffhall",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 3,
      "created_at": "2025-01-16T17:17:50Z",
      "updated_at": "2025-07-21T16:31:41Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\nFilesystem read_file tool currently only reads text files. \n\nWhen asking Claude app with the filesystem MCP server enabled, asking it to read and analyze a file returns:\n\n> I can see there's an image file called \"Untitled.png\" in the directory. However, I need to clarify something: while I can see that the file exists, I cannot actually open or view image files. I can only work with text-based files and perform file system operations.\nIf you'd like me to analyze the image, you would need to describe what's in it or share it directly in our conversation. Is there something specific about the image you'd like to discuss?\n\n**Describe the solution you'd like**\nAdd support for reading image files.\n\nThe \"read_file\" logic is in [this switch statement](https://github.com/modelcontextprotocol/servers/blob/main/src/filesystem/index.ts#L448) in the filesystem server.\n\nI haven't drilled into the MCP server deeply enough to know if another case in this switch and possibly some type declarations would be enough, or if there is some problem with handling an image returned from this tool as opposed to text. Feels like probably the latter, or it would have been relatively low-hanging fruit when the server was originally written.\n\n**Describe alternatives you've considered**\nI suppose the \"read_file\" tool could be modified to return text, images, or any other MIME type). I need to learn more about how the return from this function is consumed to know more.\n\n**Additional context**\nThis arose from a [discussion on Reddit](https://www.reddit.com/r/ClaudeAI/comments/1i2klyg/anyway_to_get_claude_to_open_images_through/).\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/533/reactions",
        "total_count": 22,
        "+1": 22,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/531",
      "id": 2793268996,
      "node_id": "I_kwDONRaG_86mfecE",
      "number": 531,
      "title": "filesystem in the directory mounted with rclone does not work",
      "user": {
        "login": "DoiiarX",
        "id": 25550075,
        "node_id": "MDQ6VXNlcjI1NTUwMDc1",
        "avatar_url": "https://avatars.githubusercontent.com/u/25550075?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/DoiiarX",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-01-16T16:47:34Z",
      "updated_at": "2025-04-26T15:17:22Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "filesystem in the directory mounted with rclone does not work",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/531/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/521",
      "id": 2788684023,
      "node_id": "I_kwDONRaG_86mN_D3",
      "number": 521,
      "title": "confusing documentation",
      "user": {
        "login": "sirus20x6",
        "id": 5103327,
        "node_id": "MDQ6VXNlcjUxMDMzMjc=",
        "avatar_url": "https://avatars.githubusercontent.com/u/5103327?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sirus20x6",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432733,
          "node_id": "LA_kwDONRaG_88AAAABzvmeHQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/documentation",
          "name": "documentation",
          "color": "0075ca",
          "default": true,
          "description": "Improvements or additions to documentation"
        },
        "1": {
          "id": 7767432755,
          "node_id": "LA_kwDONRaG_88AAAABzvmeMw",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/question",
          "name": "question",
          "color": "d876e3",
          "default": true,
          "description": "Further information is requested"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2025-01-15T02:16:37Z",
      "updated_at": "2025-07-03T23:53:50Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "I have an application that expects mcp to be on port 3001 over sse. the documentation tells me how to create the config.json alright, but then it goes into if I want to make a server, or a client, or this or that which I do not want to do. what I want to do is to run mcp so it's available at that port, but I'm not even sure what to run. the documentation doesn't even really go into anything useful. somehow I stumbled on the model inspector\r\n\r\n![image](https://github.com/user-attachments/assets/1052b3e1-6ae5-4b35-b18e-c0ee50c8991f)\r\n\r\nit also seems to be able to talk to mcp on port 3001, but no dice. where is the binary? what do I run? where do I set the port? do I make a systemd service to start something? how does mcp run? in fact I don't even know where to put the config.json.\r\n\r\non the git page I see \"For example, this will start the [Git](https://github.com/modelcontextprotocol/servers/blob/main/src/git) server:\r\n\r\n# With uvx\r\nuvx mcp-server-git\" but running uvx mcp-server-git doesn't seem to do anything, there is no output, there are no ports opened.... it just sits there.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/521/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/519",
      "id": 2787567750,
      "node_id": "I_kwDONRaG_86mJuiG",
      "number": 519,
      "title": "Copy for Filesystem",
      "user": {
        "login": "dhodun",
        "id": 15017444,
        "node_id": "MDQ6VXNlcjE1MDE3NDQ0",
        "avatar_url": "https://avatars.githubusercontent.com/u/15017444?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/dhodun",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2025-01-14T15:53:45Z",
      "updated_at": "2025-04-26T15:17:22Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\r\nLooking for a filesystem level copy command.\r\n\r\nClaude will try and write-out entire files, often when a simple `cp` command is faster, consistent, and saves token.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/519/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/508",
      "id": 2781670647,
      "node_id": "I_kwDONRaG_86lzOz3",
      "number": 508,
      "title": "mcp-server-fetch SSL verify Off",
      "user": {
        "login": "random-robbie",
        "id": 4902869,
        "node_id": "MDQ6VXNlcjQ5MDI4Njk=",
        "avatar_url": "https://avatars.githubusercontent.com/u/4902869?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/random-robbie",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 7,
      "created_at": "2025-01-11T07:03:32Z",
      "updated_at": "2025-12-01T07:51:19Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\r\nI need to fetch some local systems with either self-signed or invalid SSL i.e when using  [DDEV](https://ddev.readthedocs.io/ ) deployments.\r\n\r\nCurrently fetch refuses to connect to the DDEV server hosted on the same machine as claude due to SSL issues.\r\n\r\n**Describe the solution you'd like**\r\nId like a flag to enable ignore bad ssl certificates to allow it to communicate with my ddev server.\r\n\r\n**Describe alternatives you've considered**\r\nNone as proxying would also require a SSL cert issue.\r\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/508/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": [
        3179
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/499",
      "id": 2775804744,
      "node_id": "I_kwDONRaG_86lc2tI",
      "number": 499,
      "title": "Case sensitivity preservation in list_allowed_directories",
      "user": {
        "login": "jszala",
        "id": 133772255,
        "node_id": "U_kgDOB_kz3w",
        "avatar_url": "https://avatars.githubusercontent.com/u/133772255?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jszala",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-01-08T16:22:51Z",
      "updated_at": "2025-08-24T03:28:02Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "The list_allowed_directories function currently returns paths in lowercase, even though the filesystem operations respect case sensitivity. This can be confusing when working with case-sensitive paths. \n\nThe issue appears to be in how paths are normalized when stored in `allowedDirectories`, while actual filesystem operations preserve case sensitivity.\n\nSteps to reproduce:\n1. Start server with case-sensitive paths like \"/home/user/Desktop/\"\n2. Call list_allowed_directories\n3. Observe that the returned paths are lowercase: \"/home/user/desktop/\"\n\nSuggested fix: Modify path normalization to preserve case in the `allowedDirectories` array.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/499/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/478",
      "id": 2768928831,
      "node_id": "I_kwDONRaG_86lCoA_",
      "number": 478,
      "title": "Filesystem cannot read large file",
      "user": {
        "login": "akendall1966",
        "id": 114869016,
        "node_id": "U_kgDOBtjDGA",
        "avatar_url": "https://avatars.githubusercontent.com/u/114869016?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/akendall1966",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2025-01-04T17:10:08Z",
      "updated_at": "2025-08-17T17:20:06Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\r\nClaude could not read the file data.csv with error:\r\n\r\nError\r\n\r\nFile not found: No file named \"d:/mcp_sandbox/data.csv\"\r\n\r\nI created a truncated version data1.csv which is read out\r\n\r\n\r\n\r\n**To Reproduce**\r\nSteps to reproduce the behavior:\r\n1. put both the attached file into the same directory that file system is allowed to access.\r\n2. prompt claude to read each file\r\n\r\n**Expected behavior**\r\nI would expect both files to be readable.\r\n\r\n**Logs**\r\nIf applicable, add logs to help explain your problem.\r\n\r\n**Additional context**\r\nAdd any other context about the problem here.\r\n[data.csv](https://github.com/user-attachments/files/18307601/data.csv)\r\n[data1.csv](https://github.com/user-attachments/files/18307602/data1.csv)\r\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/478/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/475",
      "id": 2768906758,
      "node_id": "I_kwDONRaG_86lCioG",
      "number": 475,
      "title": "[everything] Unintuitive / misleading resource indexing",
      "user": {
        "login": "PederHP",
        "id": 127606677,
        "node_id": "U_kgDOB5sflQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/127606677?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/PederHP",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359492806,
          "node_id": "LA_kwDONRaG_88AAAAB8kO8xg",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-everything",
          "name": "server-everything",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Everything MCP server - src/everything"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 7,
      "created_at": "2025-01-04T16:09:42Z",
      "updated_at": "2025-08-18T19:31:00Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\r\nThe everything server's resource indexing is counterintuitive. While the array index starts at 0, the resource numbering in URIs starts at 1, which leads to confusing behavior where:\r\n- Resource at index 0 is accessed via URI \"test://static/resource/1\"\r\n- Resource at index 1 is accessed via URI \"test://static/resource/2\"\r\netc.\r\n\r\nFrom the server code:\r\n```typescript\r\nconst ALL_RESOURCES: Resource[] = Array.from({ length: 100 }, (_, i) => ({\r\n    const url = `test://static/resource/${i + 1}`;\r\n    if (i % 2 === 0) {\r\n        // index 0 (first resource) is text\r\n        // index 2 (third resource) is text\r\n        // etc.\r\n```\r\n\r\nThis means even-indexed resources (0,2,4...) are text, but they map to odd-numbered URIs (1,3,5...).\r\n\r\n**To Reproduce**\r\nMake a ListResources request, then try to read the first text resource:\r\n\r\n1. List resources:\r\n```json\r\n{\r\n    \"jsonrpc\": \"2.0\",\r\n    \"id\": 1,\r\n    \"method\": \"resources/list\"\r\n}\r\n```\r\n\r\n2. Get first text resource (index 0):\r\n```json\r\n{\r\n    \"jsonrpc\": \"2.0\",\r\n    \"id\": 2,\r\n    \"method\": \"resources/read\",\r\n    \"params\": {\r\n        \"uri\": \"test://static/resource/1\"\r\n    }\r\n}\r\n```\r\n\r\n**Expected behavior**\r\nEither:\r\n1. Align the indexing so resource numbers in URIs match array indices (preferred)\r\n2. Or document this behavior clearly to prevent confusion\r\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/475/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/470",
      "id": 2768307619,
      "node_id": "I_kwDONRaG_86lAQWj",
      "number": 470,
      "title": "Filesystem server access denied for allowed paths on Windows",
      "user": {
        "login": "robotdad",
        "id": 1429895,
        "node_id": "MDQ6VXNlcjE0Mjk4OTU=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1429895?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/robotdad",
        "type": "User",
        "user_view_type": "public",
        "site_admin": true
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2025-01-04T00:05:22Z",
      "updated_at": "2025-08-09T02:00:13Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "When using a local version of the filesystem server on Windows I am getting access denied for paths that are allowed directories on Windows. I was moving to this to get off of my own fork sine a prior PR was merged but it is not in release. \r\n\r\n**To Reproduce**\r\nSteps to reproduce the behavior:\r\n1.  Setup some allowed directories on Windows\r\n2.  Try and access file with them using a local build of filesystem server\r\n\r\n**Logs**\r\nThere are no errors in the logs.\r\n\r\n**Additional context**\r\nHere is an example output of read_file showing the issue.\r\n```\r\n{\r\n  `path`: `C:\\\\source\\\\servers\\\\src\\\\fetch\\\\README.md`\r\n}\r\nError: Access denied - path outside allowed directories: C:\\source\\servers\\src\\fetch\\README.md not in c:\\source, C:\\Users\\mgoodner\r\n```\r\n\r\n\r\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/470/reactions",
        "total_count": 13,
        "+1": 13,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/447",
      "id": 2762850903,
      "node_id": "I_kwDONRaG_86krcJX",
      "number": 447,
      "title": "filesystem MCP server doesn't support legal Windows pathnames in claude_desktop_config.json",
      "user": {
        "login": "NemanSyed",
        "id": 38197868,
        "node_id": "MDQ6VXNlcjM4MTk3ODY4",
        "avatar_url": "https://avatars.githubusercontent.com/u/38197868?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/NemanSyed",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 21,
      "created_at": "2024-12-30T08:38:34Z",
      "updated_at": "2025-11-27T05:58:40Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\r\nIn claude_desktop_config.json, legal Windows characters in pathnames appear unsupported:\r\nAccepted: `\"C:\\\\NS\\\\AI\"` (works with no spaces and doubled up \\ characters)\r\nAccepted: `\"/Users/NEMANS~1/FOO~2/BAR~1/Thing/Other~1\"` (used short name / 8.3 name since it avoids risk of spaces or LFN problems)\r\nUnaccepted: `\"C:\\\\NS\\\\My Kindle Content\"` (problem: spaces)\r\nUnaccepted: `\"/c/NS/MyKindleContent\"` (problem: inclusion of drive letter)\r\nUnaccepted: `\"/mnt/c/NS/MyKindleContent\"` (problem: inclusion of drive letter)\r\n\r\nThere are probably other examples too, but I've run out of patience.\r\n\r\nError message:\r\nMCP server filesystem disconnected. For troubleshooting guidance, please visit our debugging documentation.\r\n![image](https://github.com/user-attachments/assets/b2572270-0e99-4408-8578-86fc5c793a74)\r\n\r\nNote `\"/Users/NEMANS~1/FOO~2/BAR~1/Thing/Other~1\"`, displays with strikethrough in the UI after the \"c:\\users\\nemans\" portion of the resolved pathname string. It's exactly what we see when \"/Users/NEMANS~1/FOO~2/BAR~1/Thing/Other~1\" isn't marked as code in the bug report editor.\r\n![image](https://github.com/user-attachments/assets/ef36774d-362c-41d8-a92b-b0288722a913)\r\n\r\n**To Reproduce**\r\nAdd a path into the config that includes spaces (and probably other legal-in-Windows characters) or add a path that includes the drive letter.\r\n\r\n**Expected behavior**\r\n1. Accept pathnames allowable in Windows in the Windows application's config file\r\n2. Improved documentation in the Windows section of https://modelcontextprotocol.io/quickstart/user#2-add-the-filesystem-mcp-server that shows how to include other legal forms of Windows pathnames into the config.\r\n![image](https://github.com/user-attachments/assets/fc79c765-1e24-4684-8ca5-e61939c0195b)\r\n",
      "closed_by": {
        "login": "domdomegg",
        "id": 4953590,
        "node_id": "MDQ6VXNlcjQ5NTM1OTA=",
        "avatar_url": "https://avatars.githubusercontent.com/u/4953590?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/domdomegg",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/447/reactions",
        "total_count": 3,
        "+1": 3,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": "reopened",
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/444",
      "id": 2762600691,
      "node_id": "I_kwDONRaG_86kqfDz",
      "number": 444,
      "title": "Sequential Thinking: Add option to use API requests to help with usage limits / maximum response length ",
      "user": {
        "login": "ThoughtPhotography",
        "id": 8135791,
        "node_id": "MDQ6VXNlcjgxMzU3OTE=",
        "avatar_url": "https://avatars.githubusercontent.com/u/8135791?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ThoughtPhotography",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2024-12-30T03:33:46Z",
      "updated_at": "2024-12-30T03:34:58Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\r\nWhile quite useful, this feature can frequently hit the length limit, and isn't ideal when many of us already struggle with usage limitations.\r\n\r\n**Describe the solution you'd like**\r\nThere a number of servers that allow making API calls. \r\nIdeally this could be implemented directly, otherwise the ability to specify another MCP tool to use for Sequential-Thinking would make it possible to offload the thinking to Claude via the Anthropic or Open Router APIs.\r\n(the latter would also support any other model.)\r\n\r\n**Additional context**\r\nThe vast majority of MCP users either already have an Anthropic API key, or can easily figure out how to get one.\r\n\r\n![image](https://github.com/user-attachments/assets/236c50d5-69f7-4e13-a6cc-9d29845e21e4)\r\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/444/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/414",
      "id": 2758775572,
      "node_id": "I_kwDONRaG_86kb5MU",
      "number": 414,
      "title": "Broken path escapes in windows",
      "user": {
        "login": "whaaaley",
        "id": 7419947,
        "node_id": "MDQ6VXNlcjc0MTk5NDc=",
        "avatar_url": "https://avatars.githubusercontent.com/u/7419947?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/whaaaley",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 6,
      "created_at": "2024-12-25T12:23:34Z",
      "updated_at": "2025-04-26T15:17:19Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\r\nHere's some example output navigating to my wsl nixos.\r\n\r\n```\r\n{\r\n  `path`: `\\\\\\\\wsl.localhost\\\r\nixos\\\\home\\\r\nixos\\\\projects\\\trpg`\r\n}\r\n```\r\n\r\nRemoving escapes from the path in the json causes issues:\r\n![image](https://github.com/user-attachments/assets/29921ff7-fe66-4df9-ba10-60319be798ba)\r\n\r\n**To Reproduce**\r\nSteps to reproduce the behavior:\r\n1. Access a directory starting with n or t\r\n\r\n**Expected behavior**\r\nGo to path, no escaping breaking the path\r\n\r\n**Logs**\r\nn/a\r\n\r\n**Additional context**\r\n~~More escapes do nothing~~ I was doing it wrong, that does fix it, but the visual bug remains\r\n\r\nEdit: It's kinda fixed kinda not. The write sends stuff of into the ether but it thinks it's correct.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/414/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/360",
      "id": 2742981512,
      "node_id": "I_kwDONRaG_86jfpOI",
      "number": 360,
      "title": "Sync reported server versions with package.json and pyproject.toml",
      "user": {
        "login": "jspahrsummers",
        "id": 432536,
        "node_id": "MDQ6VXNlcjQzMjUzNg==",
        "avatar_url": "https://avatars.githubusercontent.com/u/432536?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jspahrsummers",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2024-12-16T17:29:35Z",
      "updated_at": "2024-12-16T17:29:35Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Avoids confusion like the first screenshot here: https://github.com/modelcontextprotocol/servers/issues/207#issuecomment-2543134126",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/360/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/297",
      "id": 2729617797,
      "node_id": "I_kwDONRaG_86isqmF",
      "number": 297,
      "title": "Improvment: Use resources and resource urls with the filesystem MCP server",
      "user": {
        "login": "snaggle-ai",
        "id": 190936624,
        "node_id": "U_kgDOC2F2MA",
        "avatar_url": "https://avatars.githubusercontent.com/u/190936624?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/snaggle-ai",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2024-12-10T09:57:45Z",
      "updated_at": "2025-05-03T16:04:17Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\r\nThe filesystem MCP server method for reading non-text files is to call the read_file tool and return a base64 encoded string of the contents of the file. This is of limited usefulness and on files of moderate size it maxes out the response size and crashes claude.\r\n\r\nThis pretty much prevents using the filesystem MCP to interact with image files on local storage as any modern image is too large to load as a base64 string (and pass all the text through the LLM consuming tons of tokens).\r\n\r\nThe modelcontextprotocol spec describes how binary resources can be used for images and documents: https://modelcontextprotocol.io/docs/concepts/resources#binary-resources\r\n\r\n**Describe the solution you'd like**\r\nAs a reference implementation the filesystem MCP should return resource urls rather than raw contents for non-text files, or for files over a certain size.\r\n\r\n**Describe alternatives you've considered**\r\nAllow Claude to directly load images into its context based on a path to a file without needing to use MCP \r\n\r\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/297/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/295",
      "id": 2729282232,
      "node_id": "I_kwDONRaG_86irYq4",
      "number": 295,
      "title": "NPM Packaging",
      "user": {
        "login": "calclavia",
        "id": 1828968,
        "node_id": "MDQ6VXNlcjE4Mjg5Njg=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1828968?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/calclavia",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 1,
      "created_at": "2024-12-10T07:38:18Z",
      "updated_at": "2024-12-13T16:46:19Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Is your feature request related to a problem? Please describe.**\r\nOne issue with the current package setup is it's difficult for them to be used as a NPM package, as they're made for \"CLI-setup\".\r\n\r\n**Describe the solution you'd like**\r\nRefactor all the servers so they export a function that instantiates the server parameters for in-memory usage. Every server should export in its index file:\r\n\r\n```\r\nfunction createServer(args: ServerConfig)\r\n```\r\n\r\n\r\nThis is sort of what I'm trying to do here (https://github.com/unroute/typescript-sdk), but would be great if the official package sets this as an example.\r\n\r\nYou can still have a `bin/cli.ts` entry-point, but simultaneously allow dual use as a plain node module.\r\n\r\n**Describe alternatives you've considered**\r\nWe could keep it as it is but it'll require spawning node servers for each server. It might not be a clean pattern if we are to use these MCPs within custom agent designs.\r\n\r\nOpen to suggestions though!",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/295/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/281",
      "id": 2727642215,
      "node_id": "I_kwDONRaG_86ilIRn",
      "number": 281,
      "title": "Set up npm provenance",
      "user": {
        "login": "jspahrsummers",
        "id": 432536,
        "node_id": "MDQ6VXNlcjQzMjUzNg==",
        "avatar_url": "https://avatars.githubusercontent.com/u/432536?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jspahrsummers",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2024-12-09T16:31:31Z",
      "updated_at": "2024-12-09T16:31:32Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "https://docs.npmjs.com/generating-provenance-statements",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/281/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/272",
      "id": 2725572467,
      "node_id": "I_kwDONRaG_86idO9z",
      "number": 272,
      "title": "[Git] Support for git init",
      "user": {
        "login": "wsmoak",
        "id": 20140,
        "node_id": "MDQ6VXNlcjIwMTQw",
        "avatar_url": "https://avatars.githubusercontent.com/u/20140?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/wsmoak",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 0,
      "created_at": "2024-12-08T22:42:31Z",
      "updated_at": "2024-12-08T22:42:31Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "The git mcp server can do things like `git add` and `git commit`.  I was using it in combination with the filesystem mcp server to create a directory and write files, however I found that it could not do `git init` to initiate a git repository in the directory, which is necessary before add and commit can work.\r\n\r\nPlease add support for `git init` \r\n\r\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/272/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/239",
      "id": 2720738010,
      "node_id": "I_kwDONRaG_86iKyra",
      "number": 239,
      "title": "Improve Permission Handling in Filesystem MCP Server",
      "user": {
        "login": "rovo79",
        "id": 117691,
        "node_id": "MDQ6VXNlcjExNzY5MQ==",
        "avatar_url": "https://avatars.githubusercontent.com/u/117691?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/rovo79",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2024-12-05T15:36:08Z",
      "updated_at": "2025-08-17T16:37:21Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "# Improve Permission Handling in Filesystem MCP Server\r\n\r\n## Issue\r\nWhen using the Filesystem MCP server with Claude desktop app on macOS, there's a suboptimal user experience around system-level file permissions. Currently, permission prompts are triggered only after a failed file access attempt, leading to a jarring experience where:\r\n\r\n1. User requests to read a file using `read_file` tool\r\n2. Operation fails due to lack of permissions\r\n3. Claude app prompts for system permissions\r\n4. User has to retry the operation\r\n\r\n## Impact\r\nThis creates a poor user experience where:\r\n- Operations fail before permissions are established\r\n- Users see error messages before permission prompts\r\n- Multiple permission prompts might appear for different files\r\n- Operations need to be manually retried after granting permissions\r\n\r\n## Proposed Solution\r\nAdd a new `check_permissions` tool to the Filesystem MCP server that would:\r\n- Allow proactive permission checking before file operations\r\n- Trigger any needed system permission prompts upfront\r\n- Return clear status about which paths are accessible\r\n- Enable better error handling and user guidance\r\n\r\n### Implementation Details\r\n- New tool: `check_permissions`\r\n- Input: Array of paths to validate\r\n- Output: Mapping of paths to their permission status\r\n- Validates both MCP server allowed directories and system-level permissions\r\n- Triggers OS permission prompts in a controlled manner\r\n\r\n## Benefits\r\n- More predictable permission flow\r\n- Better user experience\r\n- Clearer feedback about access status\r\n- Reduced need for error recovery\r\n- Maintains separation of concerns within MCP architecture\r\n\r\n## Notes\r\nWhile the ideal fix might involve changes to the Claude desktop app itself, this server-side solution provides a workable improvement within the current architecture.",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/239/reactions",
        "total_count": 1,
        "+1": 1,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/235",
      "id": 2719236429,
      "node_id": "I_kwDONRaG_86iFEFN",
      "number": 235,
      "title": "filesystem couldn't use the network mapped driver name, only the unc path in windows 11 23h2",
      "user": {
        "login": "dave2nian",
        "id": 166886426,
        "node_id": "U_kgDOCfJ8Gg",
        "avatar_url": "https://avatars.githubusercontent.com/u/166886426?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/dave2nian",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2024-12-05T03:43:04Z",
      "updated_at": "2025-07-05T09:42:45Z",
      "closed_at": null,
      "author_association": "NONE",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "**Describe the bug**\r\nin my windows 11 23h2, \r\n\r\n`C:\\net use z:\r\nLocal name        Z:\r\nRemote name       \\\\davens\\Multimedia\r\nResource type     Disk\r\nStatus            OK\r\n# Opens           2\r\n# Connections     1\r\nThe command completed successfully.`\r\n\r\nclaude_decktop_config.json content as below: \r\n`{\r\n    \"mcpServers\": {\r\n        \"filesystem\": {\r\n            \"command\": \"npx\",\r\n            \"args\": [ \r\n                \"-y\", \r\n                \"@modelcontextprotocol/server-filesystem\", \r\n                \"Z:\\\\2024-MyProgramFiles\"\r\n            ]\r\n        }\r\n    }\r\n}` \r\n\r\nif I used Z: drive in the claude_decktop_config.json,  z: or Z: .  MCP got \"Error: Parent directory does not exist: z:\\\"\r\n\r\nif I used the UNC path in  the claude_decktop_config.json.  MCP agent works well. \r\n\r\n`{\r\n    \"mcpServers\": {\r\n        \"filesystem\": {\r\n            \"command\": \"npx\",\r\n            \"args\": [\"@modelcontextprotocol/server-filesystem\", \"\\\\\\\\davens\\\\Multimedia\\\\2024-MyProgramFiles\"]\r\n        }\r\n    }\r\n}`\r\n\r\n![image](https://github.com/user-attachments/assets/34b84d1e-95e4-4308-8630-63379a03baff)\r\n\r\nthis problem only happen on the mapped network driver.   if it is a local driver, it is fin for works. \r\n",
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/235/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/197",
      "id": 2715007830,
      "node_id": "I_kwDONRaG_86h07tW",
      "number": 197,
      "title": "Set up eslint and prettify",
      "user": {
        "login": "jspahrsummers",
        "id": 432536,
        "node_id": "MDQ6VXNlcjQzMjUzNg==",
        "avatar_url": "https://avatars.githubusercontent.com/u/432536?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jspahrsummers",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 2,
      "created_at": "2024-12-03T13:15:44Z",
      "updated_at": "2024-12-03T16:05:30Z",
      "closed_at": null,
      "author_association": "MEMBER",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": null,
      "closed_by": null,
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/197/reactions",
        "total_count": 0,
        "+1": 0,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": null,
      "pinned_comment": null,
      "linked_prs": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/188",
      "id": 2713783739,
      "node_id": "I_kwDONRaG_86hwQ27",
      "number": 188,
      "title": "[Git] Allow multiple repositories",
      "user": {
        "login": "lamemind",
        "id": 2404135,
        "node_id": "MDQ6VXNlcjI0MDQxMzU=",
        "avatar_url": "https://avatars.githubusercontent.com/u/2404135?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/lamemind",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        }
      },
      "state": "open",
      "locked": false,
      "assignee": null,
      "assignees": {},
      "milestone": null,
      "comments": 4,
      "created_at": "2024-12-03T01:55:42Z",
      "updated_at": "2024-12-12T19:50:03Z",
      "closed_at": null,
      "author_association": "CONTRIBUTOR",
      "type": null,
      "active_lock_reason": null,
      "sub_issues_summary": {
        "total": 0,
        "completed": 0,
        "percent_completed": 0
      },
      "issue_dependencies_summary": {
        "blocked_by": 0,
        "total_blocked_by": 0,
        "blocking": 0,
        "total_blocking": 0
      },
      "body": "Hello,\r\n\r\nI just need to work with multiple repositories. Seems a legit request to me :)\r\n\r\nI see two ways\r\n1. Allow multiple repositories\r\n2. Allow multiple instances of the same git mcp server (maybe this is a different issue)\r\n\r\nAt this time I have no workaround, no solutions.\r\n\r\nMany thanks in advance",
      "closed_by": {
        "login": "jspahrsummers",
        "id": 432536,
        "node_id": "MDQ6VXNlcjQzMjUzNg==",
        "avatar_url": "https://avatars.githubusercontent.com/u/432536?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jspahrsummers",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "reactions": {
        "url": "https://api.github.com/repos/modelcontextprotocol/servers/issues/188/reactions",
        "total_count": 2,
        "+1": 2,
        "-1": 0,
        "laugh": 0,
        "hooray": 0,
        "confused": 0,
        "heart": 0,
        "rocket": 0,
        "eyes": 0
      },
      "performed_via_github_app": null,
      "state_reason": "reopened",
      "pinned_comment": null,
      "linked_prs": []
    }
  ],
  "pulls": [
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3348",
      "id": 3296016083,
      "node_id": "PR_kwDONRaG_87EdTbT",
      "number": 3348,
      "state": "open",
      "locked": false,
      "title": "Add hop SSH connection manager",
      "user": {
        "login": "danmartuszewski",
        "id": 323465,
        "node_id": "MDQ6VXNlcjMyMzQ2NQ==",
        "avatar_url": "https://avatars.githubusercontent.com/u/323465?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/danmartuszewski",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n- Adds [hop](https://github.com/danmartuszewski/hop) to the Community Servers section\n\nHop is a fast SSH connection manager built in Go, featuring a TUI dashboard and an MCP server for discovering, searching, and executing commands on remote hosts.\n\n## Test plan\n- [x] Entry follows existing Community Servers format\n- [x] Alphabetically ordered (between \"Home Assistant\" and \"HTML to Markdown\")",
      "created_at": "2026-02-17T21:06:06Z",
      "updated_at": "2026-02-17T21:06:07Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "efe029ac6af608a04706b0ad234a80e18033cf48",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "danmartuszewski:add-hop-server",
        "ref": "add-hop-server",
        "sha": "b6f8ed712d35bc6c6c95838ef38a4647f9d0ed65",
        "user": {
          "login": "danmartuszewski",
          "id": 323465,
          "node_id": "MDQ6VXNlcjMyMzQ2NQ==",
          "avatar_url": "https://avatars.githubusercontent.com/u/323465?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/danmartuszewski",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1160357937,
          "node_id": "R_kgDORSmoMQ",
          "name": "servers",
          "full_name": "danmartuszewski/servers",
          "private": false,
          "owner": {
            "login": "danmartuszewski",
            "id": 323465,
            "node_id": "MDQ6VXNlcjMyMzQ2NQ==",
            "avatar_url": "https://avatars.githubusercontent.com/u/323465?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/danmartuszewski",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/danmartuszewski/servers",
          "created_at": "2026-02-17T21:04:19Z",
          "updated_at": "2026-02-17T21:04:19Z",
          "pushed_at": "2026-02-17T21:05:39Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28584,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3348"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3348"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3348"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3348/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3348/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3348/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/b6f8ed712d35bc6c6c95838ef38a4647f9d0ed65"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3344",
      "id": 3290309826,
      "node_id": "PR_kwDONRaG_87EHiTC",
      "number": 3344,
      "state": "open",
      "locked": false,
      "title": "Update Perplexity repository link to official org",
      "user": {
        "login": "kesku",
        "id": 62210496,
        "node_id": "MDQ6VXNlcjYyMjEwNDk2",
        "avatar_url": "https://avatars.githubusercontent.com/u/62210496?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/kesku",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Updates the Perplexity MCP server entry to point to the official organization repository (https://github.com/perplexityai/modelcontextprotocol) instead of the previous link.",
      "created_at": "2026-02-16T14:47:53Z",
      "updated_at": "2026-02-16T14:47:53Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "55ae87decddf057011bde27005450e376311cabe",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "kesku:update-perplexity-repo",
        "ref": "update-perplexity-repo",
        "sha": "1682806286a2af42943df6023c4ec41008b511dc",
        "user": {
          "login": "kesku",
          "id": 62210496,
          "node_id": "MDQ6VXNlcjYyMjEwNDk2",
          "avatar_url": "https://avatars.githubusercontent.com/u/62210496?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/kesku",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1159282782,
          "node_id": "R_kgDORRlAXg",
          "name": "mcp-reference-servers",
          "full_name": "kesku/mcp-reference-servers",
          "private": false,
          "owner": {
            "login": "kesku",
            "id": 62210496,
            "node_id": "MDQ6VXNlcjYyMjEwNDk2",
            "avatar_url": "https://avatars.githubusercontent.com/u/62210496?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/kesku",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/kesku/mcp-reference-servers",
          "created_at": "2026-02-16T14:44:56Z",
          "updated_at": "2026-02-16T14:44:56Z",
          "pushed_at": "2026-02-16T14:47:40Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28098,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3344"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3344"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3344"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3344/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3344/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3344/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/1682806286a2af42943df6023c4ec41008b511dc"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3343",
      "id": 3289706479,
      "node_id": "PR_kwDONRaG_87EFO_v",
      "number": 3343,
      "state": "open",
      "locked": false,
      "title": "Add Spring Boot Swagger MCP to Community Servers",
      "user": {
        "login": "Neo1228",
        "id": 162654709,
        "node_id": "U_kgDOCbHp9Q",
        "avatar_url": "https://avatars.githubusercontent.com/u/162654709?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Neo1228",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\nThis PR adds [Spring Boot Swagger MCP](https://github.com/Neo1228/spring-boot-starter-swagger-mcp) to the Community Servers list.\n\n## Motivation and Context\nSpring Boot is the most popular framework for enterprise Java development. This library allows developers to instantly expose their existing APIs as MCP tools without writing any adapter code, bridging the gap between traditional backend services and AI agents.\n\n## Key Features\n- **Zero Boilerplate**: Uses existing \\@RestController\\ and \\@Operation\\ annotations.\n- **Auto-Discovery**: Dynamically generates tool specifications from the running application.\n- **Safe by Default**: Configurable human-in-the-loop confirmation for side-effect operations (POST/PUT/DELETE).\n- **Advanced Context**: Built-in meta-tools to help LLMs explore and understand the API hierarchy.\n\n## How Has This Been Tested?\nTested with:\n- Claude Desktop\n- MCP Inspector\n- Various Spring Boot applications using \\springdoc-openapi\\.\n\n## Checklist\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\n- [x] My changes follows MCP security best practices\n- [x] I have updated the server's README accordingly\n- [x] I have tested this with an LLM client\n- [x] My code follows the repository's style guidelines\n- [x] New and existing tests pass locally\n- [x] I have added appropriate error handling\n- [x] I have documented all environment variables and configuration options\n\n## Links\n- Repository: https://github.com/Neo1228/spring-boot-starter-swagger-mcp\n- Documentation: https://github.com/Neo1228/spring-boot-starter-swagger-mcp#readme",
      "created_at": "2026-02-16T12:05:26Z",
      "updated_at": "2026-02-16T12:05:26Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "dec4faf13e336acc1f45c91b81e013b3bfb2b960",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Neo1228:add-spring-boot-swagger-mcp",
        "ref": "add-spring-boot-swagger-mcp",
        "sha": "a72456c747b37454175351f5b6d11637ab5998e2",
        "user": {
          "login": "Neo1228",
          "id": 162654709,
          "node_id": "U_kgDOCbHp9Q",
          "avatar_url": "https://avatars.githubusercontent.com/u/162654709?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Neo1228",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1159170177,
          "node_id": "R_kgDORReIgQ",
          "name": "servers",
          "full_name": "Neo1228/servers",
          "private": false,
          "owner": {
            "login": "Neo1228",
            "id": 162654709,
            "node_id": "U_kgDOCbHp9Q",
            "avatar_url": "https://avatars.githubusercontent.com/u/162654709?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Neo1228",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/Neo1228/servers",
          "created_at": "2026-02-16T12:03:31Z",
          "updated_at": "2026-02-16T12:03:31Z",
          "pushed_at": "2026-02-16T12:05:24Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28584,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3343"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3343"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3343"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3343/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3343/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3343/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/a72456c747b37454175351f5b6d11637ab5998e2"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3342",
      "id": 3288758227,
      "node_id": "PR_kwDONRaG_87EBnfT",
      "number": 3342,
      "state": "open",
      "locked": false,
      "title": "Adding Fastalert MCP server in official integrations",
      "user": {
        "login": "Joisar",
        "id": 3830290,
        "node_id": "MDQ6VXNlcjM4MzAyOTA=",
        "avatar_url": "https://avatars.githubusercontent.com/u/3830290?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Joisar",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\n\r\n## Publishing Your Server\r\n\r\n**Note: We are no longer accepting PRs to add servers to the README.** Instead, please publish your server to the [MCP Server Registry](https://github.com/modelcontextprotocol/registry) to make it discoverable to the MCP ecosystem.\r\n\r\nTo publish your server, follow the [quickstart guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx). You can browse published servers at [https://registry.modelcontextprotocol.io/](https://registry.modelcontextprotocol.io/).\r\n\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: <!-- e.g., filesystem, github -->\r\n- Changes to: <!-- e.g., tools, resources, prompts -->\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [ ] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [ ] My changes follows MCP security best practices\r\n- [ ] I have updated the server's README accordingly\r\n- [ ] I have tested this with an LLM client\r\n- [ ] My code follows the repository's style guidelines\r\n- [ ] New and existing tests pass locally\r\n- [ ] I have added appropriate error handling\r\n- [ ] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2026-02-16T07:36:09Z",
      "updated_at": "2026-02-16T07:36:09Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "504e15afc8e66072192b2375bf40d3bddecbf0ad",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Joisar:main",
        "ref": "main",
        "sha": "fa7f9b53967e72c5206fd6be7cf7ce29cd41061d",
        "user": {
          "login": "Joisar",
          "id": 3830290,
          "node_id": "MDQ6VXNlcjM4MzAyOTA=",
          "avatar_url": "https://avatars.githubusercontent.com/u/3830290?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Joisar",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1158990974,
          "node_id": "R_kgDORRTMfg",
          "name": "servers",
          "full_name": "Joisar/servers",
          "private": false,
          "owner": {
            "login": "Joisar",
            "id": 3830290,
            "node_id": "MDQ6VXNlcjM4MzAyOTA=",
            "avatar_url": "https://avatars.githubusercontent.com/u/3830290?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Joisar",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/Joisar/servers",
          "created_at": "2026-02-16T07:09:06Z",
          "updated_at": "2026-02-16T07:33:57Z",
          "pushed_at": "2026-02-16T07:33:49Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28098,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3342"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3342"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3342"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3342/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3342/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3342/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/fa7f9b53967e72c5206fd6be7cf7ce29cd41061d"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3341",
      "id": 3288395263,
      "node_id": "PR_kwDONRaG_87EAO3_",
      "number": 3341,
      "state": "open",
      "locked": false,
      "title": "Add Baozi.bet to community servers",
      "user": {
        "login": "bolivian-peru",
        "id": 22889870,
        "node_id": "MDQ6VXNlcjIyODg5ODcw",
        "avatar_url": "https://avatars.githubusercontent.com/u/22889870?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/bolivian-peru",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\nAdds [Baozi.bet](https://github.com/bolivian-peru/baozi-mcp) to the community servers list.\n\n**Baozi.bet** is a Solana prediction market MCP server with 68 tools covering:\n\n- **Market discovery** — browse, search, and filter live prediction markets\n- **Betting** — place YES/NO bets and pari-mutuel race bets (SOL)\n- **Claims** — claim winnings from resolved markets\n- **Market creation** — create boolean and race markets with customizable fees\n- **Affiliate system** — earn 1% referral commissions\n- **Creator profiles** — on-chain reputation and fee configuration\n\nThe server builds unsigned transactions that the user signs with their own wallet — no private keys are ever handled by the server.\n\n- **npm:** [@baozi.bet/mcp-server](https://www.npmjs.com/package/@baozi.bet/mcp-server)\n- **Install:** `npx @baozi.bet/mcp-server`\n- **License:** MIT\n- **Transport:** stdio\n\n## Checklist\n\n- [x] Server is open source (MIT license)\n- [x] Published on npm\n- [x] Uses official MCP SDK (`@modelcontextprotocol/sdk`)\n- [x] Has comprehensive README with setup instructions\n- [x] Entry is alphabetically placed in the Community Servers section\n- [x] Entry follows the existing format (`**[Name](repo)** - Description`)",
      "created_at": "2026-02-16T05:10:03Z",
      "updated_at": "2026-02-16T05:10:03Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "b8088e182070c35c8acb79c28f8a3a3cc9108fe1",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "bolivian-peru:add-baozi-prediction-markets",
        "ref": "add-baozi-prediction-markets",
        "sha": "7dd7bda202b3c009d5febe7cc5d23553c63c097e",
        "user": {
          "login": "bolivian-peru",
          "id": 22889870,
          "node_id": "MDQ6VXNlcjIyODg5ODcw",
          "avatar_url": "https://avatars.githubusercontent.com/u/22889870?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/bolivian-peru",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1158930520,
          "node_id": "R_kgDORRPgWA",
          "name": "servers",
          "full_name": "bolivian-peru/servers",
          "private": false,
          "owner": {
            "login": "bolivian-peru",
            "id": 22889870,
            "node_id": "MDQ6VXNlcjIyODg5ODcw",
            "avatar_url": "https://avatars.githubusercontent.com/u/22889870?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bolivian-peru",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/bolivian-peru/servers",
          "created_at": "2026-02-16T05:08:54Z",
          "updated_at": "2026-02-16T05:08:54Z",
          "pushed_at": "2026-02-16T05:09:51Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28584,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3341"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3341"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3341"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3341/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3341/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3341/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/7dd7bda202b3c009d5febe7cc5d23553c63c097e"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3340",
      "id": 3287177249,
      "node_id": "PR_kwDONRaG_87D7lgh",
      "number": 3340,
      "state": "open",
      "locked": false,
      "title": "Adding Frost AI Development Platform - an AI-powered job search automation and on-demand tool/app generation platform.",
      "user": {
        "login": "thatgamer253-cpu",
        "id": 260624651,
        "node_id": "U_kgDOD4jRCw",
        "avatar_url": "https://avatars.githubusercontent.com/u/260624651?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/thatgamer253-cpu",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Adding Frost AI Development Platform - an AI-powered job search automation and on-demand tool/app generation platform.\r\n**Tools:**\r\n- Job scanning (Upwork, LinkedIn) - $0.10/scan\r\n- Cover letter generation - $0.50/letter\r\n- Custom tool creation - $10/tool\r\n- Application building - $50/app\r\n- Automation workflows - $20/automation\r\nLive server: https://frost-mcp-server-1.onrender.com\r\nRepository: https://github.com/thatgamer253-cpu/frost-mcp-server\r\nAPI Docs: https://frost-mcp-server-1.onrender.com/docs",
      "created_at": "2026-02-15T16:42:46Z",
      "updated_at": "2026-02-15T17:19:03Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "96a3109be521f266c8c9928508a4982d7302e475",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "thatgamer253-cpu:patch-1",
        "ref": "patch-1",
        "sha": "1d174a9abb0c551fd7214f8e8d304de487f561b3",
        "user": {
          "login": "thatgamer253-cpu",
          "id": 260624651,
          "node_id": "U_kgDOD4jRCw",
          "avatar_url": "https://avatars.githubusercontent.com/u/260624651?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/thatgamer253-cpu",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1158588994,
          "node_id": "R_kgDORQ6qQg",
          "name": "https-github.com-thatgamer253-cpu-frost-mcp-server",
          "full_name": "thatgamer253-cpu/https-github.com-thatgamer253-cpu-frost-mcp-server",
          "private": false,
          "owner": {
            "login": "thatgamer253-cpu",
            "id": 260624651,
            "node_id": "U_kgDOD4jRCw",
            "avatar_url": "https://avatars.githubusercontent.com/u/260624651?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/thatgamer253-cpu",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "### Frost Job Tools AI-powered job scanning and cover letter generation - **Author**: thatgamer253-cpu - **Repository****Tools**: Job scanning ($0.10), Cover letters ($0.50)",
          "fork": true,
          "url": "https://api.github.com/repos/thatgamer253-cpu/https-github.com-thatgamer253-cpu-frost-mcp-server",
          "created_at": "2026-02-15T16:12:49Z",
          "updated_at": "2026-02-15T16:12:49Z",
          "pushed_at": "2026-02-15T16:37:41Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28354,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3340"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3340"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3340"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3340/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3340/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3340/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/1d174a9abb0c551fd7214f8e8d304de487f561b3"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3339",
      "id": 3287083857,
      "node_id": "PR_kwDONRaG_87D7OtR",
      "number": 3339,
      "state": "open",
      "locked": false,
      "title": "Add comprehensive file operations tool with more tests",
      "user": {
        "login": "hamzaMissewi",
        "id": 92398781,
        "node_id": "U_kgDOBYHkvQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/92398781?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/hamzaMissewi",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Fix test failures and add comprehensive file operations tool\r\n \r\n- Fixed file-operations test by ensuring registerTool is called before accessing mock calls\r\n- Fixed roots test by adding missing server properties (getClientCapabilities, setNotificationHandler, listRoots)\r\n- Fixed server-logging test by adjusting timer expectations\r\n- Updated registration test to expect 13 tools instead of 12\r\n- Added file-operations to expected tools list in registration test\r\n \r\nAll tests now pass except for some edge cases in server-logging\r\nwhich are expected due to random nature of logging messages.\r\n \r\nFeatures:\r\n- Complete file operations tool with read, write, delete, list, create-dir\r\n- Comprehensive error handling with proper MCP annotations\r\n- Input validation and security checks\r\n- Modern async/await with fs/promises\r\n- MCP-compliant response formatting",
      "created_at": "2026-02-15T15:39:22Z",
      "updated_at": "2026-02-17T21:20:26Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "919830247847ad8afd726255b27ed90f9baf9e92",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "hamzaMissewi:main",
        "ref": "main",
        "sha": "288e9712344dbc0057bc56d7f7e9cb05c586be38",
        "user": {
          "login": "hamzaMissewi",
          "id": 92398781,
          "node_id": "U_kgDOBYHkvQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/92398781?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/hamzaMissewi",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1158385788,
          "node_id": "R_kgDORQuQfA",
          "name": "mcp-servers",
          "full_name": "hamzaMissewi/mcp-servers",
          "private": false,
          "owner": {
            "login": "hamzaMissewi",
            "id": 92398781,
            "node_id": "U_kgDOBYHkvQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/92398781?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/hamzaMissewi",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/hamzaMissewi/mcp-servers",
          "created_at": "2026-02-15T09:28:24Z",
          "updated_at": "2026-02-17T21:13:06Z",
          "pushed_at": "2026-02-17T21:13:01Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28145,
          "stargazers_count": 1,
          "watchers_count": 1,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 1,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3339"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3339"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3339"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3339/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3339/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3339/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/288e9712344dbc0057bc56d7f7e9cb05c586be38"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3334",
      "id": 3285151667,
      "node_id": "PR_kwDONRaG_87Dz2-z",
      "number": 3334,
      "state": "open",
      "locked": false,
      "title": "Add URL Elicitation cases",
      "user": {
        "login": "evalstate",
        "id": 1936278,
        "node_id": "MDQ6VXNlcjE5MzYyNzg=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1936278?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/evalstate",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Add URL Elicitation cases (normal `ElicitationRequest` + `-32042` error style).\r\n\r\n## Description\r\n\r\nOpening for discussion -- this covers the basic case; I wonder do we want the ElicitationRequest to block and send a callback URL? Happy to add this, but wanted to discuss with @olahungerford @cliffhall before going that far.\r\n\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [X] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [X] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [X] My changes follows MCP security best practices\r\n- [X] I have updated the server's README accordingly\r\n- [X] I have tested this with an LLM client\r\n- [X] My code follows the repository's style guidelines\r\n- [X] New and existing tests pass locally\r\n- [X] I have added appropriate error handling\r\n- [X] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2026-02-14T18:45:00Z",
      "updated_at": "2026-02-16T23:06:21Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "8438b3691c2c1cfca1483799451cda522b6648f8",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {
        "0": {
          "login": "olaservo",
          "id": 16480113,
          "node_id": "MDQ6VXNlcjE2NDgwMTEz",
          "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/olaservo",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "modelcontextprotocol:feat/url-elicitation",
        "ref": "feat/url-elicitation",
        "sha": "224b6ee29cf76b4aac026cda888deb367255fdf0",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3334"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3334"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3334"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3334/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3334/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3334/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/224b6ee29cf76b4aac026cda888deb367255fdf0"
        }
      },
      "author_association": "MEMBER",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3332",
      "id": 3284775420,
      "node_id": "PR_kwDONRaG_87DybH8",
      "number": 3332,
      "state": "open",
      "locked": false,
      "title": "fix: include outgoing relations in open_nodes",
      "user": {
        "login": "Limitless2023",
        "id": 127183162,
        "node_id": "U_kgDOB5SpOg",
        "avatar_url": "https://avatars.githubusercontent.com/u/127183162?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Limitless2023",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\nFix for issue #3137 - open_nodes returns empty relations array even when entities have outgoing relations.\n\n## Changes\n\n- Modified openNodes to return outgoing relations (where the entity is the from endpoint) in addition to relations between opened nodes\n- Updated tool description to reflect new behavior\n- Updated tests to match new expected behavior\n\n## Why\n\nPreviously, open_nodes only returned relations where both endpoints were in the requested node list. This made it impossible to traverse the graph from specific nodes without reading the entire graph.\n\nNow, when you open a node, you also get its outgoing relations, enabling graph traversal.\n\n## Test\n\nAll tests pass (42/42)",
      "created_at": "2026-02-14T15:17:48Z",
      "updated_at": "2026-02-14T15:17:48Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "e63f2b7cedb00b79ee7ae0fa9d0a3b7107088b62",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Limitless2023:fix/memory-open-nodes-outgoing-relations",
        "ref": "fix/memory-open-nodes-outgoing-relations",
        "sha": "062ec905aa9ed9e7234a6697538d1072282a9b53",
        "user": {
          "login": "Limitless2023",
          "id": 127183162,
          "node_id": "U_kgDOB5SpOg",
          "avatar_url": "https://avatars.githubusercontent.com/u/127183162?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Limitless2023",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1155107598,
          "node_id": "R_kgDORNmLDg",
          "name": "servers",
          "full_name": "Limitless2023/servers",
          "private": false,
          "owner": {
            "login": "Limitless2023",
            "id": 127183162,
            "node_id": "U_kgDOB5SpOg",
            "avatar_url": "https://avatars.githubusercontent.com/u/127183162?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Limitless2023",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/Limitless2023/servers",
          "created_at": "2026-02-11T06:03:54Z",
          "updated_at": "2026-02-11T06:03:54Z",
          "pushed_at": "2026-02-14T15:17:16Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28573,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 2,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 2,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3332"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3332"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3332"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3332/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3332/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3332/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/062ec905aa9ed9e7234a6697538d1072282a9b53"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3331",
      "id": 3284102890,
      "node_id": "PR_kwDONRaG_87Dv27q",
      "number": 3331,
      "state": "open",
      "locked": false,
      "title": "Update README.md",
      "user": {
        "login": "KenanAtmaca",
        "id": 16580898,
        "node_id": "MDQ6VXNlcjE2NTgwODk4",
        "avatar_url": "https://avatars.githubusercontent.com/u/16580898?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/KenanAtmaca",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\n\r\n## Publishing Your Server\r\n\r\n**Note: We are no longer accepting PRs to add servers to the README.** Instead, please publish your server to the [MCP Server Registry](https://github.com/modelcontextprotocol/registry) to make it discoverable to the MCP ecosystem.\r\n\r\nTo publish your server, follow the [quickstart guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx). You can browse published servers at [https://registry.modelcontextprotocol.io/](https://registry.modelcontextprotocol.io/).\r\n\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: <!-- e.g., filesystem, github -->\r\n- Changes to: <!-- e.g., tools, resources, prompts -->\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [ ] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [ ] My changes follows MCP security best practices\r\n- [ ] I have updated the server's README accordingly\r\n- [ ] I have tested this with an LLM client\r\n- [ ] My code follows the repository's style guidelines\r\n- [ ] New and existing tests pass locally\r\n- [ ] I have added appropriate error handling\r\n- [ ] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2026-02-14T08:47:27Z",
      "updated_at": "2026-02-14T08:47:27Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "b1264ad0ff9faadbfe044f610b34abe3b5640e8d",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "KenanAtmaca:main",
        "ref": "main",
        "sha": "627703bc8ad19baaec5eb0f56573e8416db0c0f1",
        "user": {
          "login": "KenanAtmaca",
          "id": 16580898,
          "node_id": "MDQ6VXNlcjE2NTgwODk4",
          "avatar_url": "https://avatars.githubusercontent.com/u/16580898?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/KenanAtmaca",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1157756076,
          "node_id": "R_kgDORQH0rA",
          "name": "servers",
          "full_name": "KenanAtmaca/servers",
          "private": false,
          "owner": {
            "login": "KenanAtmaca",
            "id": 16580898,
            "node_id": "MDQ6VXNlcjE2NTgwODk4",
            "avatar_url": "https://avatars.githubusercontent.com/u/16580898?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/KenanAtmaca",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/KenanAtmaca/servers",
          "created_at": "2026-02-14T08:41:52Z",
          "updated_at": "2026-02-14T08:46:27Z",
          "pushed_at": "2026-02-14T08:46:23Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28226,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3331"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3331"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3331"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3331/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3331/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3331/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/627703bc8ad19baaec5eb0f56573e8416db0c0f1"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3324",
      "id": 3276468935,
      "node_id": "PR_kwDONRaG_87DSvLH",
      "number": 3324,
      "state": "open",
      "locked": false,
      "title": "feat(sequential-thinking): Add comprehensive test coverage, architectural improvements, and robustness hardening",
      "user": {
        "login": "vlordier",
        "id": 5443125,
        "node_id": "MDQ6VXNlcjU0NDMxMjU=",
        "avatar_url": "https://avatars.githubusercontent.com/u/5443125?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/vlordier",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Overview\nMajor improvements to the sequential-thinking MCP server focusing on robustness, correctness, and maintainability. This PR adds comprehensive test coverage (272 tests), fixes critical architectural issues, and implements proper validation, error handling, and resource management.\n\n## Key Improvements\n\n### Test Coverage (0 → 272 tests)\n- **17 test files** covering all components\n- **Integration tests**: Server behavior, performance benchmarks\n- **Unit tests**: All services, utilities, and edge cases\n- **Test helpers**: Factories and mocks for consistent testing\n- Added Vitest configuration with proper TypeScript support\n\n### Architectural Fixes\n\n**Race Condition in Rate Limiting**\n- Fixed race condition where concurrent requests could bypass rate limits\n- Moved session recording to happen atomically with rate limit check\n- Added 7 comprehensive tests covering concurrent scenarios\n\n**Data Consistency (Single Source of Truth)**\n- Eliminated duplicate branch tracking between metrics and storage\n- Metrics now queries storage directly for branch counts\n- Prevents state divergence between components\n\n**Session ID Validation**\n- Added upfront validation with clear error messages\n- Prevents silent replacement of invalid session IDs\n- Preserves user intent with fail-fast behavior\n- Comprehensive tests for valid/invalid formats and edge cases\n\n**Efficient Timestamp Tracking**\n- Replaced O(n) array operations with O(1) CircularBuffer\n- Eliminated inefficient cleanup algorithms\n- Added proper 60-second window filtering\n\n**Dead Code Elimination**\n- Removed unused methods and incomplete APIs\n- Cleaned up redundant code paths\n\n### Configuration & Environment\n- Made health check thresholds configurable via environment variables\n- Centralized configuration management with proper validation\n- Added comprehensive environment variable documentation\n- Fixed stateful regex patterns that caused intermittent failures\n\n### Security & Validation\n- **Implemented rate limiting enforcement** (was documented but not enforced)\n- Sliding-window rate limiting with per-session tracking\n- Enhanced input sanitization with proper pattern detection\n- Improved session validation and generation\n- Added configurable blocked patterns\n\n### Error Handling & Logging\n- Structured logging with circular reference detection\n- Proper error propagation and classification\n- Try/catch guards around formatting operations\n- No more silent error swallowing\n- Clear error messages for validation failures\n\n### Resource Management\n- Added proper `destroy()` methods to all services\n- Idempotent cleanup (safe to call multiple times)\n- Automatic resource cleanup on shutdown\n- Memory-bounded data structures (CircularBuffer, capped Sets)\n\n### Performance Optimizations\n- CircularBuffer for O(1) operations (response times, timestamps)\n- Capped collections to prevent unbounded growth\n- Optimized cleanup algorithms\n- Efficient filtering and queries\n\n### Code Quality\n- Added ESLint configuration with TypeScript support\n- Added Prettier for consistent formatting\n- Required `destroy()` methods on all storage interfaces\n- Changed session stats to use numeric timestamps\n- Added error rate clamping (0-100%)\n- Fixed type safety issues throughout codebase\n\n## New Components\n\n### Core Services\n- `circular-buffer.ts` - Efficient fixed-size buffer implementation\n- `session-tracker.ts` - Centralized session lifecycle management\n- `health-checker.ts` - Comprehensive health monitoring\n- `metrics.ts` - Request and thought metrics collection\n- `logger.ts` - Structured logging with sanitization\n- `security-service.ts` - Validation, sanitization, rate limiting\n- `state-manager.ts` - Bounded thought history management\n\n### Configuration & Infrastructure\n- `config.ts` - Centralized configuration with environment variable support\n- `container.ts` - Dependency injection container\n- `interfaces.ts` - TypeScript interfaces for all services\n- `formatter.ts` - Console output formatting\n- `error-handlers.ts` - Composite error handling\n- `errors.ts` - Custom error classes\n\n## Test Files Added\n\n### Unit Tests\n- `circular-buffer.test.ts` (20 tests) - Buffer operations and edge cases\n- `config.test.ts` (26 tests) - Configuration loading and validation\n- `logger.test.ts` (24 tests) - Logging and sanitization\n- `security-service.test.ts` (22 tests) - Validation and rate limiting\n- `health-checker.test.ts` (15 tests) - Health check logic\n- `metrics.test.ts` (14 tests) - Metrics collection\n- `formatter.test.ts` (13 tests) - Output formatting\n- `session-validation.test.ts` (13 tests) - Session ID validation\n- `state-manager.test.ts` (17 tests) - Thought history management\n- `container.test.ts` (11 tests) - Dependency injection\n- `storage.test.ts` (7 tests) - Storage utilities\n- `race-condition.test.ts` (7 tests) - Concurrent access scenarios\n- `branch-tracking.test.ts` (6 tests) - Branch consistency\n- `error-handler.test.ts` (4 tests) - Error handling\n\n### Integration Tests\n- `server.test.ts` (52 tests) - End-to-end server behavior\n- `performance.test.ts` (6 tests) - Performance benchmarks\n- `timestamp-tracking.test.ts` (16 tests) - Time-based filtering\n\n## Verification\n\n✅ **TypeScript**: 0 compilation errors  \n✅ **ESLint**: 0 linting errors  \n✅ **Tests**: 272/272 passing  \n✅ **No breaking changes**: All changes are internal improvements\n\n## Changes by Category\n\n### Modified Core Files\n- `index.ts` - Updated tool definition and initialization\n- `lib.ts` - Refactored with proper service composition\n- `package.json` - Added dev dependencies for testing and linting\n- `vitest.config.ts` - Test configuration\n- `README.md` - Updated documentation with environment variables\n\n### Configuration Files Added\n- `.eslintrc.cjs` - TypeScript-aware linting rules\n- `.prettierrc.json` - Code formatting rules\n\nAll changes maintain backward compatibility with existing usage patterns.\n\n## Docker Fix\n\n**Critical Bug Fixed**: The Dockerfile was non-functional due to missing build step.\n\n**Problem**: \n- Line 10 ran `npm ci --ignore-scripts --omit-dev` which skipped the TypeScript compilation\n- The `dist/` directory was never created\n- Docker images appeared to build successfully but were non-functional\n\n**Solution**:\n- Replaced with `RUN npm run build` to properly compile TypeScript\n- Now the build process works correctly:\n  1. Install dependencies (including devDependencies)\n  2. Compile TypeScript → JavaScript (`npm run build`)\n  3. Copy built `dist/` to release image\n  4. Install only production dependencies in release\n\n**Impact**: Docker installation method now actually works as documented.\n\nCredits: Based on PR #2965 by @bruno-t-cardoso (open for 3 months)\n",
      "created_at": "2026-02-12T14:16:32Z",
      "updated_at": "2026-02-14T10:27:49Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "19c3a0999482c26ab4ccd42ed8e2ed8b4e1adf45",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": true,
      "head": {
        "label": "vlordier:main",
        "ref": "main",
        "sha": "0ab3264422416a894c25882e9f1f2cabe83467da",
        "user": {
          "login": "vlordier",
          "id": 5443125,
          "node_id": "MDQ6VXNlcjU0NDMxMjU=",
          "avatar_url": "https://avatars.githubusercontent.com/u/5443125?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/vlordier",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1155501664,
          "node_id": "R_kgDORN-OYA",
          "name": "servers",
          "full_name": "vlordier/servers",
          "private": false,
          "owner": {
            "login": "vlordier",
            "id": 5443125,
            "node_id": "MDQ6VXNlcjU0NDMxMjU=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5443125?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/vlordier",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/vlordier/servers",
          "created_at": "2026-02-11T15:31:26Z",
          "updated_at": "2026-02-14T10:27:55Z",
          "pushed_at": "2026-02-14T10:27:48Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28896,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3324"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3324"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3324"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3324/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3324/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3324/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/0ab3264422416a894c25882e9f1f2cabe83467da"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        2
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3323",
      "id": 3273601509,
      "node_id": "PR_kwDONRaG_87DHzHl",
      "number": 3323,
      "state": "open",
      "locked": false,
      "title": "feat(memory): expose knowledge graph as MCP Resource",
      "user": {
        "login": "RaidLZ",
        "id": 160362805,
        "node_id": "U_kgDOCY7xNQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/160362805?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/RaidLZ",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Register the knowledge graph as a readable MCP Resource at\r\nmemory://knowledge-graph, enabling clients to discover and read\r\nthe graph via the Resources protocol.\r\n\r\nThis demonstrates the underutilized Resources feature of MCP in a\r\nreference server, as encouraged by CONTRIBUTING.md.",
      "created_at": "2026-02-11T21:29:15Z",
      "updated_at": "2026-02-11T21:29:15Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "a9dc5cdd719564bcc9893c788eff3e3157971d9a",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "RaidLZ:feat/memory-add-resource-support",
        "ref": "feat/memory-add-resource-support",
        "sha": "cb66bccc6f9f408797ae715b5cc11a474a402112",
        "user": {
          "login": "RaidLZ",
          "id": 160362805,
          "node_id": "U_kgDOCY7xNQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/160362805?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/RaidLZ",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1155748593,
          "node_id": "R_kgDORONS8Q",
          "name": "servers",
          "full_name": "RaidLZ/servers",
          "private": false,
          "owner": {
            "login": "RaidLZ",
            "id": 160362805,
            "node_id": "U_kgDOCY7xNQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/160362805?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/RaidLZ",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/RaidLZ/servers",
          "created_at": "2026-02-11T21:26:56Z",
          "updated_at": "2026-02-11T21:26:56Z",
          "pushed_at": "2026-02-11T21:27:09Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28569,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3323"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3323"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3323"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3323/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3323/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3323/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/cb66bccc6f9f408797ae715b5cc11a474a402112"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3322",
      "id": 3272648709,
      "node_id": "PR_kwDONRaG_87DEKgF",
      "number": 3322,
      "state": "open",
      "locked": false,
      "title": "Fix Typo in README.md",
      "user": {
        "login": "subodhr258",
        "id": 58080782,
        "node_id": "MDQ6VXNlcjU4MDgwNzgy",
        "avatar_url": "https://avatars.githubusercontent.com/u/58080782?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/subodhr258",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\nFixed a typo in the README.md file.\r\n\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [x] Documentation update\r\n\r\n## Additional context\r\nThis is just a typo fix. No MCP server added.\r\n",
      "created_at": "2026-02-11T17:16:54Z",
      "updated_at": "2026-02-11T17:16:58Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "e927a8dc23b2b8c10ec5a50fb4b8af6610b20f02",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "subodhr258:main",
        "ref": "main",
        "sha": "a75d119536397389270683131ec37eec14c135f1",
        "user": {
          "login": "subodhr258",
          "id": 58080782,
          "node_id": "MDQ6VXNlcjU4MDgwNzgy",
          "avatar_url": "https://avatars.githubusercontent.com/u/58080782?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/subodhr258",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1155579598,
          "node_id": "R_kgDOROC-zg",
          "name": "MCP-Servers",
          "full_name": "subodhr258/MCP-Servers",
          "private": false,
          "owner": {
            "login": "subodhr258",
            "id": 58080782,
            "node_id": "MDQ6VXNlcjU4MDgwNzgy",
            "avatar_url": "https://avatars.githubusercontent.com/u/58080782?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/subodhr258",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/subodhr258/MCP-Servers",
          "created_at": "2026-02-11T17:07:25Z",
          "updated_at": "2026-02-11T17:14:01Z",
          "pushed_at": "2026-02-11T17:13:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28100,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3322"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3322"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3322"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3322/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3322/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3322/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/a75d119536397389270683131ec37eec14c135f1"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3321",
      "id": 3270595458,
      "node_id": "PR_kwDONRaG_87C8VOC",
      "number": 3321,
      "state": "open",
      "locked": false,
      "title": "fix(sequentialthinking): prevent unbounded memory growth in thought history",
      "user": {
        "login": "Limitless2023",
        "id": 127183162,
        "node_id": "U_kgDOB5SpOg",
        "avatar_url": "https://avatars.githubusercontent.com/u/127183162?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Limitless2023",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\nFixes #2912 — The `SequentialThinkingServer` stores all thoughts in memory arrays (`thoughtHistory` and `branches`) that grow without bound across the server process lifetime. In long-running sessions (6-8+ hours of frequent use), this can lead to **10GB+ RAM consumption**.\n\n## Root Cause\n\n`thoughtHistory: ThoughtData[]` and `branches: Record<string, ThoughtData[]>` are append-only — thoughts are pushed but never removed or trimmed. Since the server is a long-lived stdio process, memory accumulates indefinitely.\n\n## Changes\n\n### 1. Configurable max history with auto-trimming (`lib.ts`)\n- Added `SEQUENTIAL_THINKING_MAX_HISTORY` environment variable (default: `1000`)\n- When thought count exceeds the limit, oldest thoughts are trimmed via `splice()`\n- This bounds memory usage to a predictable maximum regardless of session length\n\n### 2. Explicit `clearHistory()` method (`lib.ts`)\n- New public method that resets both `thoughtHistory` and `branches` to empty\n- Returns metadata about what was cleared (previous thought/branch counts)\n\n### 3. New `sequentialthinking_clear` tool (`index.ts`)\n- Registers a tool that clients can invoke to explicitly free memory\n- Useful between distinct thinking sessions within the same server process\n\n### 4. Documentation (`README.md`)\n- Added environment variables table documenting both `DISABLE_THOUGHT_LOGGING` and the new `SEQUENTIAL_THINKING_MAX_HISTORY`\n\n### 5. Tests (`lib.test.ts`)\n- `clearHistory` — verifies thoughts and branches are fully reset\n- Memory management — verifies history trimming at default limit\n- Environment variable — verifies custom `SEQUENTIAL_THINKING_MAX_HISTORY` is respected\n\n## Testing\n\nAll 17 tests pass:\n```\n✓ __tests__/lib.test.ts (17 tests) 4ms\nTest Files  1 passed (1)\n     Tests  17 passed (17)\n```\n\n## Design Decisions\n\n- **Default limit of 1000**: Conservative — retains substantial context while preventing runaway growth. A single thought is typically a few hundred bytes of text, so 1000 thoughts ≈ a few hundred KB.\n- **Trim oldest first**: Most recent thoughts are the most relevant for ongoing reasoning. Oldest thoughts are the least likely to be referenced.\n- **Separate clear tool**: Allows explicit memory management without losing the auto-trim safety net.",
      "created_at": "2026-02-11T08:36:08Z",
      "updated_at": "2026-02-12T10:44:33Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "92cf30426f94d55fb9bb979b898d9b24f6ba433c",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Limitless2023:fix/sequentialthinking-memory-leak",
        "ref": "fix/sequentialthinking-memory-leak",
        "sha": "ceb238175d61f03f906614a88a6b88fef1441f56",
        "user": {
          "login": "Limitless2023",
          "id": 127183162,
          "node_id": "U_kgDOB5SpOg",
          "avatar_url": "https://avatars.githubusercontent.com/u/127183162?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Limitless2023",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1155107598,
          "node_id": "R_kgDORNmLDg",
          "name": "servers",
          "full_name": "Limitless2023/servers",
          "private": false,
          "owner": {
            "login": "Limitless2023",
            "id": 127183162,
            "node_id": "U_kgDOB5SpOg",
            "avatar_url": "https://avatars.githubusercontent.com/u/127183162?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Limitless2023",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/Limitless2023/servers",
          "created_at": "2026-02-11T06:03:54Z",
          "updated_at": "2026-02-11T06:03:54Z",
          "pushed_at": "2026-02-14T15:17:16Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28573,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 2,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 2,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "173d99115357e8ebfbd5e3a2cef048ed3b14bbee",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3321"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3321"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3321"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3321/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3321/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3321/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/ceb238175d61f03f906614a88a6b88fef1441f56"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        2,
        2912
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3311",
      "id": 3267134468,
      "node_id": "PR_kwDONRaG_87CvIQE",
      "number": 3311,
      "state": "open",
      "locked": false,
      "title": "Add Apollo Intelligence MCP Server (26 tools)",
      "user": {
        "login": "bnmbnmai",
        "id": 259450955,
        "node_id": "U_kgDOD3boSw",
        "avatar_url": "https://avatars.githubusercontent.com/u/259450955?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/bnmbnmai",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Adds [Apollo Intelligence Network](https://github.com/bnmbnmai/mcp-proxy) (`@apollo_ai/mcp-proxy` on npm) to the third-party servers list.\n\n**26 tools** covering:\n- **DeFi**: Yield opportunities (18K+ pools), protocol analytics (7K+ protocols)\n- **OSINT**: IP threat scoring, domain intelligence\n- **Crypto**: Live prices, trending coins, FX rates\n- **Intelligence Feeds**: Pain points, agentic trends, keyword opportunities, micro-SaaS ideas\n- **Search**: Web scraping (190+ country residential proxies), X/Twitter real-time search, GitHub trending, Product Hunt\n- **Bundles**: Opportunity pack, builder intel, agentic insights\n\nAll endpoints gated via [x402 micropayments](https://x402.org) (USDC on Base mainnet). No API keys, no subscriptions.\n\n- **npm**: `@apollo_ai/mcp-proxy@4.4.0`\n- **Language**: TypeScript\n- **Scope**: Cloud service\n- **Docs**: https://apolloai.team\n- **x402scan**: https://www.x402scan.com/server/3e61cb80-3b13-48cc-be79-db9dd85f57a4",
      "created_at": "2026-02-10T13:03:53Z",
      "updated_at": "2026-02-15T01:07:20Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "096452f2d3b6bbae1842338c380d4fc1a8689b3f",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "bnmbnmai:add-apollo-mcp-server",
        "ref": "add-apollo-mcp-server",
        "sha": "7783cdf1c417e1e06eee4639355c961b9d2ffac1",
        "user": {
          "login": "bnmbnmai",
          "id": 259450955,
          "node_id": "U_kgDOD3boSw",
          "avatar_url": "https://avatars.githubusercontent.com/u/259450955?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/bnmbnmai",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1154494754,
          "node_id": "R_kgDORNAxIg",
          "name": "servers",
          "full_name": "bnmbnmai/servers",
          "private": false,
          "owner": {
            "login": "bnmbnmai",
            "id": 259450955,
            "node_id": "U_kgDOD3boSw",
            "avatar_url": "https://avatars.githubusercontent.com/u/259450955?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bnmbnmai",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/bnmbnmai/servers",
          "created_at": "2026-02-10T13:03:09Z",
          "updated_at": "2026-02-10T13:03:10Z",
          "pushed_at": "2026-02-15T01:07:04Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28482,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "70c549be694c1128a29568c53d0fbdfed0e02702",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3311"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3311"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3311"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3311/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3311/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3311/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/7783cdf1c417e1e06eee4639355c961b9d2ffac1"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3310",
      "id": 3265289385,
      "node_id": "PR_kwDONRaG_87CoFyp",
      "number": 3310,
      "state": "open",
      "locked": false,
      "title": "Add Autonomo MCP server to community servers list",
      "user": {
        "login": "sebringj",
        "id": 1051218,
        "node_id": "MDQ6VXNlcjEwNTEyMTg=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1051218?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sebringj",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\n\r\n## Publishing Your Server\r\n\r\n**Note: We are no longer accepting PRs to add servers to the README.** Instead, please publish your server to the [MCP Server Registry](https://github.com/modelcontextprotocol/registry) to make it discoverable to the MCP ecosystem.\r\n\r\nTo publish your server, follow the [quickstart guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx). You can browse published servers at [https://registry.modelcontextprotocol.io/](https://registry.modelcontextprotocol.io/).\r\n\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: <!-- e.g., filesystem, github -->\r\n- Changes to: <!-- e.g., tools, resources, prompts -->\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [ ] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [ ] My changes follows MCP security best practices\r\n- [ ] I have updated the server's README accordingly\r\n- [ ] I have tested this with an LLM client\r\n- [ ] My code follows the repository's style guidelines\r\n- [ ] New and existing tests pass locally\r\n- [ ] I have added appropriate error handling\r\n- [ ] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2026-02-10T02:52:12Z",
      "updated_at": "2026-02-10T02:52:12Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "550bcf16b967943ec929dddeec10c83f14ebce02",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "sebringj:main",
        "ref": "main",
        "sha": "c8687a0b5b1e59809a537f4f0a43bf4dacf74146",
        "user": {
          "login": "sebringj",
          "id": 1051218,
          "node_id": "MDQ6VXNlcjEwNTEyMTg=",
          "avatar_url": "https://avatars.githubusercontent.com/u/1051218?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/sebringj",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1154109685,
          "node_id": "R_kgDORMpQ9Q",
          "name": "servers",
          "full_name": "sebringj/servers",
          "private": false,
          "owner": {
            "login": "sebringj",
            "id": 1051218,
            "node_id": "MDQ6VXNlcjEwNTEyMTg=",
            "avatar_url": "https://avatars.githubusercontent.com/u/1051218?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/sebringj",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/sebringj/servers",
          "created_at": "2026-02-10T02:50:18Z",
          "updated_at": "2026-02-10T02:51:52Z",
          "pushed_at": "2026-02-10T02:51:38Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28009,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "70c549be694c1128a29568c53d0fbdfed0e02702",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3310"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3310"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3310"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3310/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3310/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3310/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/c8687a0b5b1e59809a537f4f0a43bf4dacf74146"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3308",
      "id": 3265146804,
      "node_id": "PR_kwDONRaG_87Cni-0",
      "number": 3308,
      "state": "open",
      "locked": false,
      "title": "Add Reddit (No API) MCP server",
      "user": {
        "login": "iris-alights",
        "id": 254579836,
        "node_id": "U_kgDODyyUfA",
        "avatar_url": "https://avatars.githubusercontent.com/u/254579836?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/iris-alights",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Adds a Reddit MCP server that works without API keys.\n\n- **Read-only mode:** No setup required. Fetches public JSON from old.reddit.com.\n- **Write mode:** Uses browser session cookies for posting, commenting, voting, and inbox access.\n\nPyPI: https://pypi.org/project/reddit-mcp-noapi/\nGitHub: https://github.com/iris-alights/reddit-mcp",
      "created_at": "2026-02-10T01:42:55Z",
      "updated_at": "2026-02-10T01:42:55Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "f72ea9be5b51f49919940d408c46f18cf0293e1c",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "iris-alights:add-reddit-mcp-noapi",
        "ref": "add-reddit-mcp-noapi",
        "sha": "50bea5100175e233626aa2db93aae35edeb86c0a",
        "user": {
          "login": "iris-alights",
          "id": 254579836,
          "node_id": "U_kgDODyyUfA",
          "avatar_url": "https://avatars.githubusercontent.com/u/254579836?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/iris-alights",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1154075441,
          "node_id": "R_kgDORMnLMQ",
          "name": "servers",
          "full_name": "iris-alights/servers",
          "private": false,
          "owner": {
            "login": "iris-alights",
            "id": 254579836,
            "node_id": "U_kgDODyyUfA",
            "avatar_url": "https://avatars.githubusercontent.com/u/254579836?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/iris-alights",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/iris-alights/servers",
          "created_at": "2026-02-10T01:38:18Z",
          "updated_at": "2026-02-10T01:38:18Z",
          "pushed_at": "2026-02-10T01:41:51Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28484,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "70c549be694c1128a29568c53d0fbdfed0e02702",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3308"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3308"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3308"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3308/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3308/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3308/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/50bea5100175e233626aa2db93aae35edeb86c0a"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3307",
      "id": 3263468174,
      "node_id": "PR_kwDONRaG_87ChJKO",
      "number": 3307,
      "state": "open",
      "locked": false,
      "title": "Update README.md",
      "user": {
        "login": "rjalonso1980",
        "id": 126797298,
        "node_id": "U_kgDOB47F8g",
        "avatar_url": "https://avatars.githubusercontent.com/u/126797298?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/rjalonso1980",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\n\r\n## Publishing Your Server\r\n\r\n**Note: We are no longer accepting PRs to add servers to the README.** Instead, please publish your server to the [MCP Server Registry](https://github.com/modelcontextprotocol/registry) to make it discoverable to the MCP ecosystem.\r\n\r\nTo publish your server, follow the [quickstart guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx). You can browse published servers at [https://registry.modelcontextprotocol.io/](https://registry.modelcontextprotocol.io/).\r\n\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: <!-- e.g., filesystem, github -->\r\n- Changes to: <!-- e.g., tools, resources, prompts -->\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [ ] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [ ] My changes follows MCP security best practices\r\n- [ ] I have updated the server's README accordingly\r\n- [ ] I have tested this with an LLM client\r\n- [ ] My code follows the repository's style guidelines\r\n- [ ] New and existing tests pass locally\r\n- [ ] I have added appropriate error handling\r\n- [ ] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2026-02-09T15:51:57Z",
      "updated_at": "2026-02-09T15:51:57Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "af4fe2bf53d948205168a16a46db09011dc545b5",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Zyla-Labs:main",
        "ref": "main",
        "sha": "fc5da2aff95975f2d9308e3997416de827acfe57",
        "user": {
          "login": "Zyla-Labs",
          "id": 93145112,
          "node_id": "O_kgDOBY1IGA",
          "avatar_url": "https://avatars.githubusercontent.com/u/93145112?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Zyla-Labs",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1153704554,
          "node_id": "R_kgDORMQiag",
          "name": "servers",
          "full_name": "Zyla-Labs/servers",
          "private": false,
          "owner": {
            "login": "Zyla-Labs",
            "id": 93145112,
            "node_id": "O_kgDOBY1IGA",
            "avatar_url": "https://avatars.githubusercontent.com/u/93145112?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Zyla-Labs",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers Zyla API Hub",
          "fork": true,
          "url": "https://api.github.com/repos/Zyla-Labs/servers",
          "created_at": "2026-02-09T15:49:50Z",
          "updated_at": "2026-02-09T15:52:03Z",
          "pushed_at": "2026-02-09T15:51:40Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28133,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "ccf675184ec10a9bc66b95d6808df9181dd953ab",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3307"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3307"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3307"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3307/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3307/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3307/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/fc5da2aff95975f2d9308e3997416de827acfe57"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3304",
      "id": 3259892627,
      "node_id": "PR_kwDONRaG_87CTgOT",
      "number": 3304,
      "state": "open",
      "locked": false,
      "title": "Add 11 Automatik Studio MCP servers to official integrations",
      "user": {
        "login": "automatikstudio",
        "id": 259290333,
        "node_id": "U_kgDOD3R03Q",
        "avatar_url": "https://avatars.githubusercontent.com/u/259290333?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/automatikstudio",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "This PR adds 11 MCP servers from Automatik Studio to the official integrations list:\n\n## Added MCP Servers:\n- **AdCraft MCP** - AI-powered ad copy generation server for creating compelling advertising content\n- **BrandSnap MCP** - Brand identity analysis and creation server for consistent brand messaging  \n- **CopyForge MCP** - Advanced marketing copy generation for websites, emails, and campaigns\n- **HireScript MCP** - Job description writing and optimization server for attracting top talent\n- **LegalForge MCP** - Legal document generation and analysis server with AI assistance\n- **PitchDeck MCP** - Presentation and pitch deck creation for investor presentations\n- **ProofBase MCP** - Customer testimonial and case study generation for social proof\n- **ProposalPilot MCP** - Business proposal writing and optimization for RFP responses\n- **RemixPost MCP** - Social media content creation and optimization across platforms\n- **ReviewReply MCP** - Customer review response generation for professional feedback\n- **SiteScore MCP** - SEO analysis and optimization server for website auditing\n\nAll servers are available at https://github.com/automatikstudio/ and provide AI-powered content generation and business automation tools for developers and teams.\n\n## Changes:\n- Added entries to the Official Integrations section in alphabetical order\n- Followed existing format and style guidelines\n- Included clear descriptions for each server's functionality",
      "created_at": "2026-02-08T14:54:00Z",
      "updated_at": "2026-02-08T14:54:00Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "515b8250f66d7349559802a7de3f0627c6f8e733",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "automatikstudio:add-automatikstudio-mcp-servers",
        "ref": "add-automatikstudio-mcp-servers",
        "sha": "f745a1509ff4434dadc768c8acebd3cf22d55314",
        "user": {
          "login": "automatikstudio",
          "id": 259290333,
          "node_id": "U_kgDOD3R03Q",
          "avatar_url": "https://avatars.githubusercontent.com/u/259290333?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/automatikstudio",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1152851490,
          "node_id": "R_kgDORLceIg",
          "name": "servers",
          "full_name": "automatikstudio/servers",
          "private": false,
          "owner": {
            "login": "automatikstudio",
            "id": 259290333,
            "node_id": "U_kgDOD3R03Q",
            "avatar_url": "https://avatars.githubusercontent.com/u/259290333?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/automatikstudio",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/automatikstudio/servers",
          "created_at": "2026-02-08T14:37:06Z",
          "updated_at": "2026-02-08T14:37:06Z",
          "pushed_at": "2026-02-08T14:53:45Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28481,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "ccf675184ec10a9bc66b95d6808df9181dd953ab",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3304"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3304"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3304"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3304/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3304/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3304/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/f745a1509ff4434dadc768c8acebd3cf22d55314"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3303",
      "id": 3259602834,
      "node_id": "PR_kwDONRaG_87CSZeS",
      "number": 3303,
      "state": "open",
      "locked": false,
      "title": "everything: safer CORS + loopback bind for HTTP transports",
      "user": {
        "login": "TheodorNEngoy",
        "id": 140903820,
        "node_id": "U_kgDOCGYFjA",
        "avatar_url": "https://avatars.githubusercontent.com/u/140903820?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/TheodorNEngoy",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "The Everything server's HTTP transports currently:\n- Bind to all interfaces by default (`app.listen(PORT)`)\n- Use wildcard CORS (`origin: \"*\"`) for Inspector direct connect\n\nThis is a common local-dev footgun when running an MCP server that exposes powerful tools: any LAN host can connect, and any website can issue browser requests.\n\nChanges:\n- Bind SSE + Streamable HTTP transports to `127.0.0.1` by default (override with `HOST=0.0.0.0` when intentionally exposing)\n- Replace wildcard CORS with a loopback-only allowlist by default (localhost/127.0.0.1/[::1])\n- Add `MCP_CORS_ORIGIN_REGEX` to intentionally widen the browser allowlist\n- Document the overrides in `src/everything/README.md`\n\nNo changes to the stdio transport.",
      "created_at": "2026-02-08T10:51:17Z",
      "updated_at": "2026-02-12T15:15:27Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "6e8d9ba17fd586c53dc787e87051f3501d8e1a02",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "TheodorNEngoy:codex/everything-http-hardening",
        "ref": "codex/everything-http-hardening",
        "sha": "9056526a4cd03ec40db5ada85bc98d27103e3fe6",
        "user": {
          "login": "TheodorNEngoy",
          "id": 140903820,
          "node_id": "U_kgDOCGYFjA",
          "avatar_url": "https://avatars.githubusercontent.com/u/140903820?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/TheodorNEngoy",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1151785834,
          "node_id": "R_kgDORKbbag",
          "name": "mcp-servers",
          "full_name": "TheodorNEngoy/mcp-servers",
          "private": false,
          "owner": {
            "login": "TheodorNEngoy",
            "id": 140903820,
            "node_id": "U_kgDOCGYFjA",
            "avatar_url": "https://avatars.githubusercontent.com/u/140903820?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/TheodorNEngoy",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/TheodorNEngoy/mcp-servers",
          "created_at": "2026-02-06T22:33:29Z",
          "updated_at": "2026-02-06T22:33:29Z",
          "pushed_at": "2026-02-08T18:53:21Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28490,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "ccf675184ec10a9bc66b95d6808df9181dd953ab",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3303"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3303"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3303"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3303/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3303/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3303/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/9056526a4cd03ec40db5ada85bc98d27103e3fe6"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3302",
      "id": 3259311959,
      "node_id": "PR_kwDONRaG_87CRSdX",
      "number": 3302,
      "state": "open",
      "locked": false,
      "title": "Restore gdrive server with search file ID fix and download tool",
      "user": {
        "login": "aaronpolhamus",
        "id": 2927860,
        "node_id": "MDQ6VXNlcjI5Mjc4NjA=",
        "avatar_url": "https://avatars.githubusercontent.com/u/2927860?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/aaronpolhamus",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\n- **Restores** the archived `src/gdrive/` server (removed in May 2025)\n- **Fixes** search results to include file IDs — the Drive API fetches `files(id, name, mimeType, ...)` but the output only included name and MIME type, making results unusable for downstream operations\n- **Adds** a `download` tool that saves files to a local temp directory instead of returning base64 blobs via the resource handler, which overflow LLM context windows\n- **Fixes** OAuth token auto-refresh — the server was creating `new google.auth.OAuth2()` without client credentials, so the refresh_token was unusable once the access_token expired (~1 hour). Now reads client_id/secret from the OAuth keys file.\n- **Makes MCP resources opt-in** via `GDRIVE_ENABLE_RESOURCES` env var — some MCP clients (e.g., Gemini CLI) call `resources/list` during initialization, which triggers `drive.files.list()` and can hang. Default is tools-only mode (search + download) for cross-client compatibility.\n\n## Motivation\n\nThe gdrive server is essential for LLM workflows that need to search and read Drive files (especially PDFs, images, and other binary formats). Two prior community PRs attempted similar improvements:\n\n- **#1092** — \"Add gdrive_read_file tool and improve search results\"\n- **#1353** — \"Transition to Tool-Based Architecture with Enhanced File Handling\"\n\nBoth were closed when the server was archived. The underlying issues remain: without file IDs in search output, clients can't act on results; without a download tool, binary files either overflow context (base64 blobs) or are inaccessible.\n\n## Changes\n\n### 1. Search output includes file IDs\n\n```typescript\n// Before:\n`${file.name} (${file.mimeType})`\n\n// After:\n`${file.name} (${file.mimeType}) [id:${file.id}]`\n```\n\n### 2. New `download` tool\n\n- Takes a `fileId` (from search results) and saves the file to a local directory\n- Google Workspace files are auto-exported: Docs → Markdown, Sheets → CSV, Presentations → Plain text, Drawings → PNG\n- Binary files (PDFs, images, etc.) saved as-is\n- Download directory configurable via `GDRIVE_DOWNLOAD_DIR` env var (default: `/tmp/gdrive-downloads`)\n- Filenames are sanitized for filesystem safety\n\n### 3. OAuth token auto-refresh fix\n\nThe original server created `new google.auth.OAuth2()` without `client_id` or `client_secret`. This meant the `refresh_token` in the stored credentials was unusable — when the access token expired (~1 hour), Google's token endpoint returned `invalid_request` because the refresh grant requires client credentials. Now reads `client_id`/`client_secret` from the same OAuth keys file used during the initial auth flow (`GDRIVE_OAUTH_PATH`) and passes them to the `OAuth2` constructor.\n\n### 4. MCP resources opt-in (`GDRIVE_ENABLE_RESOURCES`)\n\nSome MCP clients invoke `resources/list` during initialization, which triggers `drive.files.list()` and can hang or timeout. Resources are now disabled by default — the server advertises only `tools` capability. Set `GDRIVE_ENABLE_RESOURCES=true` to re-enable `ListResources` and `ReadResource` handlers.\n\nThis is a clean capability negotiation: the server honestly advertises what it supports based on the env var, and the MCP SDK validates that handlers match declared capabilities.\n\n### 5. Standalone build\n\n- `tsconfig.json` is self-contained (no longer extends root tsconfig)\n- Version bumped from 0.6.2 → 0.7.0\n\n## Test plan\n\n- [x] TypeScript compiles cleanly with `npm run build`\n- [x] `search` returns file IDs in output format `[id:...]`\n- [x] `download` saves binary files (PDFs) to local temp directory\n- [x] `download` exports Google Docs as markdown\n- [x] Filename sanitization handles special characters\n- [x] OAuth auto-refresh works after access token expiry (tested with expired token + valid refresh_token)\n- [x] Server starts in tools-only mode (default, no `GDRIVE_ENABLE_RESOURCES`)\n- [x] Server starts with resources enabled (`GDRIVE_ENABLE_RESOURCES=true`)\n- [x] Tested with Claude Code and Gemini CLI — both connect and use search/download tools successfully\n\n## Notes\n\nWe've been running these fixes in production for Claude Code and Gemini CLI MCP workflows (searching and reading ~300 signed compliance PDFs on Google Drive). Happy to maintain this server going forward.\n\nContact: aaron@mivest.io\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
      "created_at": "2026-02-08T07:17:07Z",
      "updated_at": "2026-02-09T18:20:58Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "471b154c89f2dc318a72ebfe1929aa9aca0e6a0d",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "aaronpolhamus:restore-gdrive-server",
        "ref": "restore-gdrive-server",
        "sha": "73e39c1ca6fa1a3eb7c9abe4e4b640484cb42b5c",
        "user": {
          "login": "aaronpolhamus",
          "id": 2927860,
          "node_id": "MDQ6VXNlcjI5Mjc4NjA=",
          "avatar_url": "https://avatars.githubusercontent.com/u/2927860?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/aaronpolhamus",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1152635566,
          "node_id": "R_kgDORLPSrg",
          "name": "servers",
          "full_name": "aaronpolhamus/servers",
          "private": false,
          "owner": {
            "login": "aaronpolhamus",
            "id": 2927860,
            "node_id": "MDQ6VXNlcjI5Mjc4NjA=",
            "avatar_url": "https://avatars.githubusercontent.com/u/2927860?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/aaronpolhamus",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/aaronpolhamus/servers",
          "created_at": "2026-02-08T07:11:08Z",
          "updated_at": "2026-02-08T07:11:08Z",
          "pushed_at": "2026-02-09T18:20:56Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28503,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "70c549be694c1128a29568c53d0fbdfed0e02702",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3302"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3302"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3302"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3302/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3302/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3302/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/73e39c1ca6fa1a3eb7c9abe4e4b640484cb42b5c"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        1
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3300",
      "id": 3258834808,
      "node_id": "PR_kwDONRaG_87CPd94",
      "number": 3300,
      "state": "open",
      "locked": false,
      "title": "Add CodeXRay to Community Servers",
      "user": {
        "login": "NeuralRays",
        "id": 260006375,
        "node_id": "U_kgDOD39h5w",
        "avatar_url": "https://avatars.githubusercontent.com/u/260006375?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/NeuralRays",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Add CodeXRay — Semantic Code Intelligence MCP Server\n\n**Repository:** https://github.com/NeuralRays/codexray  \n**npm:** https://www.npmjs.com/package/codexray  \n**License:** MIT\n\n### Description\n\nCodeXRay is a semantic code intelligence MCP server that pre-indexes codebases into a local SQLite knowledge graph. It provides **16 MCP tools** for AI coding agents:\n\n**Primary:** Overview, Context building, FTS5 search, TF-IDF semantic search  \n**Exploration:** Node details, Callers, Callees, Dependency tree, Path finding  \n**Analysis:** Impact/blast radius, Hotspots, Dead code, Circular dependencies, Complexity, Files, Status\n\n### Key Highlights\n\n- **TF-IDF semantic search** — zero external dependencies, no ML models, no API keys\n- **15 languages** via tree-sitter (TypeScript, JavaScript, Python, Go, Rust, Java, C#, PHP, Ruby, C, C++, Swift, Kotlin)\n- **30%+ token savings** — one `codexray_context` call replaces 5-10 file reads\n- 100% local — SQLite database, no cloud dependencies\n- Cross-platform: macOS, Linux, Windows\n- Install: `npx codexray`\n\nWorks with Claude Code, Cursor, Windsurf, and any MCP client.",
      "created_at": "2026-02-07T23:59:46Z",
      "updated_at": "2026-02-07T23:59:46Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "b57a0cdb9e071804d83d07ecf2cde780145cce18",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "NeuralRays:add-codexray",
        "ref": "add-codexray",
        "sha": "555be15eb3465a236d24930fa599bfaa5a13ed50",
        "user": {
          "login": "NeuralRays",
          "id": 260006375,
          "node_id": "U_kgDOD39h5w",
          "avatar_url": "https://avatars.githubusercontent.com/u/260006375?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/NeuralRays",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1152482536,
          "node_id": "R_kgDORLF86A",
          "name": "servers",
          "full_name": "NeuralRays/servers",
          "private": false,
          "owner": {
            "login": "NeuralRays",
            "id": 260006375,
            "node_id": "U_kgDOD39h5w",
            "avatar_url": "https://avatars.githubusercontent.com/u/260006375?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/NeuralRays",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/NeuralRays/servers",
          "created_at": "2026-02-07T23:52:59Z",
          "updated_at": "2026-02-07T23:52:59Z",
          "pushed_at": "2026-02-07T23:57:22Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28480,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "ccf675184ec10a9bc66b95d6808df9181dd953ab",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3300"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3300"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3300"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3300/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3300/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3300/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/555be15eb3465a236d24930fa599bfaa5a13ed50"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3297",
      "id": 3256685478,
      "node_id": "PR_kwDONRaG_87CHROm",
      "number": 3297,
      "state": "open",
      "locked": false,
      "title": "fix(memory): return relations connected to requested nodes in openNodes/searchNodes",
      "user": {
        "login": "DukeDeSouth",
        "id": 51200688,
        "node_id": "MDQ6VXNlcjUxMjAwNjg4",
        "avatar_url": "https://avatars.githubusercontent.com/u/51200688?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/DukeDeSouth",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Human View\n\n### Summary\n\nFixes #3137 — `open_nodes` returns empty relations array despite entity having relations in graph.\n\n**Root cause:** Both `openNodes()` and `searchNodes()` filter relations using `&&` (require BOTH endpoints to be in the result set). This means if you call `open_nodes([\"A\"])` and there's a relation `A → B`, it gets silently dropped because `B` isn't in the filtered set.\n\n**Fix:** Changed the relation filter from `&&` to `||` — include any relation where **at least one** endpoint is in the result set. This matches standard graph-query semantics: opening a node should reveal all its edges, not just edges to other opened nodes.\n\n#### Before (broken)\n```\nopen_nodes([\"2025-12-17\"])\n→ entities: [2025-12-17], relations: []  // relations silently dropped!\n```\n\n#### After (fixed)\n```\nopen_nodes([\"2025-12-17\"])\n→ entities: [2025-12-17], relations: [{from: \"2025-12-17\", to: \"incident/example\", ...}]\n```\n\n### Changes\n\n- `src/memory/index.ts`: Changed `&&` → `||` in relation filtering for both `openNodes()` and `searchNodes()`\n- `src/memory/__tests__/knowledge-graph.test.ts`: Updated existing tests and added new cases:\n  - Outgoing relations to nodes not in the open set\n  - Incoming relations from nodes not in the open set\n  - Relations connected to a single opened node (both directions)\n  - `searchNodes` returning outgoing relations to unmatched entities\n\n### Test plan\n\n- [x] All 45 existing tests pass (`vitest run`)\n- [x] New tests verify outgoing/incoming relations are returned for single-node queries\n- [x] `read_graph` behavior unchanged (returns all relations)\n- [x] Empty node list still returns empty graph\n- [x] Non-existent nodes still return empty result\n\n---\n\n## AI View (DCCE Protocol v1.0)\n\n### Metadata\n- **Generator**: Claude (Anthropic) via Cursor IDE\n- **Methodology**: AI-assisted development with human oversight and review\n\n### AI Contribution Summary\n- Solution design and implementation\n\n### Verification Steps Performed\n1. Reproduced the reported issue\n2. Analyzed source code to identify root cause\n3. Implemented and tested the fix\n4. Verified lint/formatting compliance\n\n### Human Review Guidance\n- Core changes are in: `src/memory/index.ts`, `src/memory/__tests__/knowledge-graph.test.ts`\n\nMade with M7 [Cursor](https://cursor.com)\n",
      "created_at": "2026-02-07T01:14:54Z",
      "updated_at": "2026-02-08T17:04:31Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "81c174995736fbe3e7d75a59c902c4af2930dd28",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "DukeDeSouth:fix/memory-open-nodes-relations",
        "ref": "fix/memory-open-nodes-relations",
        "sha": "ca7ea2253ee0cea440cf70798b9bb93e128e400e",
        "user": {
          "login": "DukeDeSouth",
          "id": 51200688,
          "node_id": "MDQ6VXNlcjUxMjAwNjg4",
          "avatar_url": "https://avatars.githubusercontent.com/u/51200688?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/DukeDeSouth",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1151843965,
          "node_id": "R_kgDORKe-fQ",
          "name": "servers",
          "full_name": "DukeDeSouth/servers",
          "private": false,
          "owner": {
            "login": "DukeDeSouth",
            "id": 51200688,
            "node_id": "MDQ6VXNlcjUxMjAwNjg4",
            "avatar_url": "https://avatars.githubusercontent.com/u/51200688?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/DukeDeSouth",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/DukeDeSouth/servers",
          "created_at": "2026-02-07T01:10:41Z",
          "updated_at": "2026-02-07T01:10:41Z",
          "pushed_at": "2026-02-07T01:14:32Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28341,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "10d382798ec93debafe7e795fe5d1f96530dd1df",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3297"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3297"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3297"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3297/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3297/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3297/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/ca7ea2253ee0cea440cf70798b9bb93e128e400e"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        3137
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3296",
      "id": 3256599731,
      "node_id": "PR_kwDONRaG_87CG8Sz",
      "number": 3296,
      "state": "open",
      "locked": false,
      "title": "fix(filesystem): handle Windows EPERM when renaming over locked files",
      "user": {
        "login": "MattBenesch",
        "id": 138265545,
        "node_id": "U_kgDOCD3DyQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/138265545?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/MattBenesch",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "On Windows, fs.rename() fails with EPERM when the target file is locked by another process (e.g., open in an editor). This adds a fallback that uses fs.cp() + fs.unlink() when EPERM is encountered, allowing edits to succeed even when the file is open.\r\n\r\nFixes #3199\r\n\r\n<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\nAdds atomicReplaceFile() helper that falls back to fs.cp() when fs.rename() fails with EPERM.\r\n\r\n## Publishing Your Server\r\n\r\n**Note: We are no longer accepting PRs to add servers to the README.** Instead, please publish your server to the [MCP Server Registry](https://github.com/modelcontextprotocol/registry) to make it discoverable to the MCP ecosystem.\r\n\r\nTo publish your server, follow the [quickstart guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx). You can browse published servers at [https://registry.modelcontextprotocol.io/](https://registry.modelcontextprotocol.io/).\r\n\r\n## Server Details\r\n  - Server: filesystem\r\n  - Changes to: tools (edit_file, write_file)\r\n\r\n## Motivation and Context\r\nOn Windows, files open in editors (VS Code, Notepad, etc.) are locked. The current fs.rename() approach fails with EPERM when trying to atomically replace these locked files. This prevents users from editing files they have open.\r\n\r\n## How Has This Been Tested?\r\nUnit tests added for EPERM fallback behavior. All 46 lib.test.ts tests pass.\r\n\r\n## Breaking Changes\r\nNone - existing behavior unchanged on Linux/macOS. Windows users will now have edits succeed where they previously failed.\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [ ] I have updated the server's README accordingly\r\n- [ ] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [ ] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n\r\n",
      "created_at": "2026-02-07T00:25:13Z",
      "updated_at": "2026-02-07T00:25:13Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "43979990d8192f34e1f5857a79f8446e97eee843",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "MattBenesch:fix/issue-3199",
        "ref": "fix/issue-3199",
        "sha": "c5137fbdd0cab3e84e3d71fbdc0fc646fdcbf2ce",
        "user": {
          "login": "MattBenesch",
          "id": 138265545,
          "node_id": "U_kgDOCD3DyQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/138265545?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/MattBenesch",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1151813305,
          "node_id": "R_kgDORKdGuQ",
          "name": "servers",
          "full_name": "MattBenesch/servers",
          "private": false,
          "owner": {
            "login": "MattBenesch",
            "id": 138265545,
            "node_id": "U_kgDOCD3DyQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/138265545?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/MattBenesch",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/MattBenesch/servers",
          "created_at": "2026-02-06T23:43:10Z",
          "updated_at": "2026-02-06T23:43:10Z",
          "pushed_at": "2026-02-07T00:19:58Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27859,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "10d382798ec93debafe7e795fe5d1f96530dd1df",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3296"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3296"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3296"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3296/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3296/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3296/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/c5137fbdd0cab3e84e3d71fbdc0fc646fdcbf2ce"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        3199
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3295",
      "id": 3256393907,
      "node_id": "PR_kwDONRaG_87CGKCz",
      "number": 3295,
      "state": "open",
      "locked": false,
      "title": "Add mcp-safety-scanner CI (baseline)",
      "user": {
        "login": "TheodorNEngoy",
        "id": 140903820,
        "node_id": "U_kgDOCGYFjA",
        "avatar_url": "https://avatars.githubusercontent.com/u/140903820?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/TheodorNEngoy",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Adds a lightweight MCP/tool-server safety scan in CI using TheodorNEngoy/mcp-safety-scanner@v0.\n\n- Scans `src` for common footguns (CORS allow-all/reflect, eval/exec, etc.)\n- Uses a committed baseline (`.mcp-safety-baseline.json`) to avoid noisy legacy findings\n- CI fails only on `high`+ severity (medium/low show as annotations)\n\nRefresh baseline (no Node required):\n`docker run --rm -v \"/tmp/mcp-servers.2eGvhp:/repo\" ghcr.io/theodornengoy/mcp-safety-scanner:v0 /repo/src --write-baseline /repo/.mcp-safety-baseline.json --fail-on=none`",
      "created_at": "2026-02-06T22:34:29Z",
      "updated_at": "2026-02-08T18:55:46Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "5b6cabd5635ac0f7a5441f04ebf33659085993f9",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "TheodorNEngoy:codex/mcp-safety-scan",
        "ref": "codex/mcp-safety-scan",
        "sha": "b1e8a8691d65b6008c77a81a05b86d783544f0d8",
        "user": {
          "login": "TheodorNEngoy",
          "id": 140903820,
          "node_id": "U_kgDOCGYFjA",
          "avatar_url": "https://avatars.githubusercontent.com/u/140903820?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/TheodorNEngoy",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1151785834,
          "node_id": "R_kgDORKbbag",
          "name": "mcp-servers",
          "full_name": "TheodorNEngoy/mcp-servers",
          "private": false,
          "owner": {
            "login": "TheodorNEngoy",
            "id": 140903820,
            "node_id": "U_kgDOCGYFjA",
            "avatar_url": "https://avatars.githubusercontent.com/u/140903820?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/TheodorNEngoy",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/TheodorNEngoy/mcp-servers",
          "created_at": "2026-02-06T22:33:29Z",
          "updated_at": "2026-02-06T22:33:29Z",
          "pushed_at": "2026-02-08T18:53:21Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28490,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "10d382798ec93debafe7e795fe5d1f96530dd1df",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3295"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3295"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3295"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3295/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3295/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3295/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/b1e8a8691d65b6008c77a81a05b86d783544f0d8"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3294",
      "id": 3255672112,
      "node_id": "PR_kwDONRaG_87CDZ0w",
      "number": 3294,
      "state": "open",
      "locked": false,
      "title": "Add ContractorFinder to third-party servers",
      "user": {
        "login": "x402agents-cloud",
        "id": 259758454,
        "node_id": "U_kgDOD3uZdg",
        "avatar_url": "https://avatars.githubusercontent.com/u/259758454?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/x402agents-cloud",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Adds ContractorFinder - an MCP server for finding licensed contractors (plumbers, electricians, HVAC) with verified licenses and reviews.\n\nFeatures:\n- License verification via state boards\n- Real reviews and ratings\n- $0.10 per search via x402 payments on Base\n- Serves Miami, Tampa, Orlando (30+ verified contractors)\n\nRepository: https://github.com/x402agents-cloud/contractor-finder-agent",
      "created_at": "2026-02-06T17:56:40Z",
      "updated_at": "2026-02-06T19:14:29Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "36cf139f33f78ad708309d921599b162309c0e4e",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "x402agents-cloud:add-contractor-finder",
        "ref": "add-contractor-finder",
        "sha": "a846f9a3a3320771e2d2bc57d47df054d8f4eb38",
        "user": {
          "login": "x402agents-cloud",
          "id": 259758454,
          "node_id": "U_kgDOD3uZdg",
          "avatar_url": "https://avatars.githubusercontent.com/u/259758454?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/x402agents-cloud",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1151634789,
          "node_id": "R_kgDORKSNZQ",
          "name": "servers",
          "full_name": "x402agents-cloud/servers",
          "private": false,
          "owner": {
            "login": "x402agents-cloud",
            "id": 259758454,
            "node_id": "U_kgDOD3uZdg",
            "avatar_url": "https://avatars.githubusercontent.com/u/259758454?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/x402agents-cloud",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/x402agents-cloud/servers",
          "created_at": "2026-02-06T17:56:18Z",
          "updated_at": "2026-02-06T17:56:18Z",
          "pushed_at": "2026-02-06T17:56:27Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28340,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "10d382798ec93debafe7e795fe5d1f96530dd1df",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3294"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3294"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3294"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3294/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3294/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3294/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/a846f9a3a3320771e2d2bc57d47df054d8f4eb38"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3293",
      "id": 3255174277,
      "node_id": "PR_kwDONRaG_87CBgSF",
      "number": 3293,
      "state": "open",
      "locked": false,
      "title": "fix(fetch): update to httpx 0.28+ proxy parameter",
      "user": {
        "login": "thecaptain789",
        "id": 257642323,
        "node_id": "U_kgDOD1tPUw",
        "avatar_url": "https://avatars.githubusercontent.com/u/257642323?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/thecaptain789",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "The httpx library renamed `proxies` to `proxy` in version 0.28.0. This was causing a TypeError when using the --proxy-url argument.\n\nChanges:\n- Update `AsyncClient(proxies=...)` calls to use `proxy=` parameter\n- Remove version cap on httpx dependency (was `<0.28`)\n- Update test assertions to match new parameter name\n\nFixes #3287",
      "created_at": "2026-02-06T15:25:55Z",
      "updated_at": "2026-02-06T15:25:55Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "0e9fe8ac52c95f04b3bfedf910220f9fc9a0bd4b",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "thecaptain789:fix-httpx-proxy-arg",
        "ref": "fix-httpx-proxy-arg",
        "sha": "8614dff06ff6cb0eee75af36674f1e19f035cabc",
        "user": {
          "login": "thecaptain789",
          "id": 257642323,
          "node_id": "U_kgDOD1tPUw",
          "avatar_url": "https://avatars.githubusercontent.com/u/257642323?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/thecaptain789",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1151528912,
          "node_id": "R_kgDORKLv0A",
          "name": "servers",
          "full_name": "thecaptain789/servers",
          "private": false,
          "owner": {
            "login": "thecaptain789",
            "id": 257642323,
            "node_id": "U_kgDOD1tPUw",
            "avatar_url": "https://avatars.githubusercontent.com/u/257642323?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/thecaptain789",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/thecaptain789/servers",
          "created_at": "2026-02-06T15:25:32Z",
          "updated_at": "2026-02-06T15:25:33Z",
          "pushed_at": "2026-02-06T15:25:44Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28340,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "10d382798ec93debafe7e795fe5d1f96530dd1df",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3293"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3293"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3293"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3293/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3293/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3293/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/8614dff06ff6cb0eee75af36674f1e19f035cabc"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        3287
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3291",
      "id": 3250536273,
      "node_id": "PR_kwDONRaG_87Bvz9R",
      "number": 3291,
      "state": "open",
      "locked": false,
      "title": "Add md2confluence-mcp server",
      "user": {
        "login": "Gyeom",
        "id": 17217111,
        "node_id": "MDQ6VXNlcjE3MjE3MTEx",
        "avatar_url": "https://avatars.githubusercontent.com/u/17217111?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Gyeom",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\nAdding **md2confluence-mcp** - an MCP server that uploads Markdown files to Atlassian Confluence.\n\n### Features\n- Mermaid diagrams → PNG (auto-converted via kroki.io)\n- Code blocks → Confluence Code macro\n- Images → Attachments (auto-uploaded)\n- Tables, links, formatting → Preserved\n\n### Links\n- **npm**: https://www.npmjs.com/package/md2confluence-mcp\n- **GitHub**: https://github.com/Gyeom/md2confluence-mcp",
      "created_at": "2026-02-05T14:45:35Z",
      "updated_at": "2026-02-05T14:45:35Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "5dd37d6551aff125abd8a278939c2ff044c7483e",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Gyeom:add-md2confluence-mcp",
        "ref": "add-md2confluence-mcp",
        "sha": "1c7c3c0c7fa4e6ec43b9c5f646932101e618ba02",
        "user": {
          "login": "Gyeom",
          "id": 17217111,
          "node_id": "MDQ6VXNlcjE3MjE3MTEx",
          "avatar_url": "https://avatars.githubusercontent.com/u/17217111?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Gyeom",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1150660931,
          "node_id": "R_kgDORJWxQw",
          "name": "servers",
          "full_name": "Gyeom/servers",
          "private": false,
          "owner": {
            "login": "Gyeom",
            "id": 17217111,
            "node_id": "MDQ6VXNlcjE3MjE3MTEx",
            "avatar_url": "https://avatars.githubusercontent.com/u/17217111?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Gyeom",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/Gyeom/servers",
          "created_at": "2026-02-05T14:42:53Z",
          "updated_at": "2026-02-05T14:42:53Z",
          "pushed_at": "2026-02-05T14:45:08Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28337,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "6a690065cf6cd76172d94e180561f12afbf02166",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3291"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3291"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3291"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3291/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3291/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3291/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/1c7c3c0c7fa4e6ec43b9c5f646932101e618ba02"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3290",
      "id": 3249668108,
      "node_id": "PR_kwDONRaG_87BsgAM",
      "number": 3290,
      "state": "open",
      "locked": false,
      "title": "Add Avalanche MCP server to official integrations",
      "user": {
        "login": "Airpote",
        "id": 70102538,
        "node_id": "MDQ6VXNlcjcwMTAyNTM4",
        "avatar_url": "https://avatars.githubusercontent.com/u/70102538?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Airpote",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\nAdds the official Avalanche MCP server to the list of third-party/official integrations.\n\n## Avalanche MCP Server Details\n\n- **Endpoint**: `https://build.avax.network/api/mcp`\n- **Documentation**: https://build.avax.network/docs/tooling/ai-llm\n- **Full docs content**: https://build.avax.network/llms-full.txt\n\n### Available Tools\n\n| Tool | Purpose |\n|------|---------|\n| `avalanche_docs_search` | Search docs by query with optional source filter |\n| `avalanche_docs_fetch` | Get a specific page by URL path |\n| `avalanche_docs_list_sections` | List all sections with page counts |\n\n### Features\n\n- Access to 1300+ pages of Avalanche blockchain documentation\n- Covers documentation, academy courses, integrations, and blog content\n- JSON-RPC 2.0 compatible\n- Rate limited to 60 requests/minute\n- No authentication required\n\n### Setup Examples\n\n**Claude Code:**\n```bash\nclaude mcp add avalanche-docs --transport http https://build.avax.network/api/mcp\n```\n\n**Claude Desktop (settings.json):**\n```json\n{\n  \"mcpServers\": {\n    \"avalanche-docs\": {\n      \"transport\": {\n        \"type\": \"http\",\n        \"url\": \"https://build.avax.network/api/mcp\"\n      }\n    }\n  }\n}\n```\n\nThis MCP server is officially provided and maintained by Ava Labs for the Avalanche blockchain ecosystem.",
      "created_at": "2026-02-05T10:57:19Z",
      "updated_at": "2026-02-05T10:57:19Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "d6abb3f3266e8994a063a1ca5c30efd9384e7a1b",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Airpote:add-avalanche-mcp",
        "ref": "add-avalanche-mcp",
        "sha": "f80f016d9cf34da5613a9141bec7d997c4832650",
        "user": {
          "login": "Airpote",
          "id": 70102538,
          "node_id": "MDQ6VXNlcjcwMTAyNTM4",
          "avatar_url": "https://avatars.githubusercontent.com/u/70102538?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Airpote",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1150498962,
          "node_id": "R_kgDORJM4kg",
          "name": "servers",
          "full_name": "Airpote/servers",
          "private": false,
          "owner": {
            "login": "Airpote",
            "id": 70102538,
            "node_id": "MDQ6VXNlcjcwMTAyNTM4",
            "avatar_url": "https://avatars.githubusercontent.com/u/70102538?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Airpote",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/Airpote/servers",
          "created_at": "2026-02-05T10:55:30Z",
          "updated_at": "2026-02-05T10:55:30Z",
          "pushed_at": "2026-02-05T10:57:04Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28337,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "6a690065cf6cd76172d94e180561f12afbf02166",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3290"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3290"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3290"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3290/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3290/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3290/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/f80f016d9cf34da5613a9141bec7d997c4832650"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3288",
      "id": 3242330270,
      "node_id": "PR_kwDONRaG_87BQgie",
      "number": 3288,
      "state": "open",
      "locked": false,
      "title": "Add AgentMarket - Energy Data MCP Server",
      "user": {
        "login": "stromfee",
        "id": 118711579,
        "node_id": "U_kgDOBxNlGw",
        "avatar_url": "https://avatars.githubusercontent.com/u/118711579?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/stromfee",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## AgentMarket - Real Energy Sensor Data for AI Agents\n\n**37 million actual measurements** from real facilities.\n\nNot simulations. Not guesses. Real sensor data:\n- PV inverters\n- Battery management systems\n- Smart meters\n- Temperature sensors\n\n17 years of data from 100+ hotels, biogas plants, and industrial facilities.\n\nhttps://agentmarket.cloud",
      "created_at": "2026-02-03T18:06:39Z",
      "updated_at": "2026-02-03T18:48:54Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "060f5902fc4c744b6a28ee64c281651abac02ab4",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "stromfee:main",
        "ref": "main",
        "sha": "973958149e552634edf85bb19a85d12aa9a6162b",
        "user": {
          "login": "stromfee",
          "id": 118711579,
          "node_id": "U_kgDOBxNlGw",
          "avatar_url": "https://avatars.githubusercontent.com/u/118711579?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/stromfee",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1149097260,
          "node_id": "R_kgDORH3VLA",
          "name": "servers",
          "full_name": "stromfee/servers",
          "private": false,
          "owner": {
            "login": "stromfee",
            "id": 118711579,
            "node_id": "U_kgDOBxNlGw",
            "avatar_url": "https://avatars.githubusercontent.com/u/118711579?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/stromfee",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/stromfee/servers",
          "created_at": "2026-02-03T18:06:34Z",
          "updated_at": "2026-02-03T18:07:25Z",
          "pushed_at": "2026-02-03T18:06:38Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28583,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "e6b0b0f5d355530ebdd09bc547240e556fbc6c19",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3288"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3288"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3288"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3288/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3288/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3288/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/973958149e552634edf85bb19a85d12aa9a6162b"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3286",
      "id": 3240247582,
      "node_id": "PR_kwDONRaG_87BIkEe",
      "number": 3286,
      "state": "open",
      "locked": false,
      "title": "feat(memory): add file locking to support multi-instance",
      "user": {
        "login": "xz-dev",
        "id": 32761048,
        "node_id": "MDQ6VXNlcjMyNzYxMDQ4",
        "avatar_url": "https://avatars.githubusercontent.com/u/32761048?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/xz-dev",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\n\nThis PR implements proper cross-process file locking for the memory server using `proper-lockfile` to ensure atomic read-modify-write operations across multiple MCP server instances.\n\n**Key changes:**\n- Add `proper-lockfile` dependency for cross-process file locking\n- Wrap all write operations (`createEntities`, `deleteEntities`, `createRelations`, `deleteRelations`, `addObservations`, `deleteObservations`) in `withLock()` to ensure atomic read-modify-write\n- Use `write-file-atomic` for more robust atomic file writes\n- Add comprehensive lock tests validating consistency under heavy concurrent writes\n\n### Why PR #3060's in-memory lock solution is insufficient\n\nPR #3060 attempts to fix Issue #2579's race condition using an **in-memory Promise-based lock**. While this works for concurrent operations within a single process, it fundamentally misses the real-world deployment model:\n\n**MCP servers using stdio transport are spawned as separate processes per client.**\n\n```\n┌─────────────────┐   ┌─────────────────┐   ┌─────────────────┐\n│  Claude Code    │   │   Claude Code   │   │   Claude Code   │\n└────────┬────────┘   └────────┬────────┘   └────────┬────────┘\n         │                     │                     │\n         ▼                     ▼                     ▼\n┌─────────────────┐   ┌─────────────────┐   ┌─────────────────┐\n│mcp-server-memory│   │mcp-server-memory│   │mcp-server-memory│\n│   (Process A)   │   │   (Process B)   │   │   (Process C)   │\n│ [In-memory lock]│   │ [In-memory lock]│   │ [In-memory lock]│\n└────────┬────────┘   └────────┬────────┘   └────────┬────────┘\n         │                     │                     │\n         └──────────┬──────────┴──────────┬──────────┘\n                    ▼                     ▼\n              ┌─────────────────────────────────┐\n              │         memory.json             │\n              │   (STILL VULNERABLE TO RACES!)  │\n              └─────────────────────────────────┘\n```\n\nPR #3060 acknowledges this limitation:\n> \"⚠️ Important: This is a Temporary Measure for Single Editor Usage\"\n> \"If you use multiple LLM clients or editors concurrently with the same memory file, you may still experience race conditions.\"\n\nThis multi-client scenario is the **default use case** for many users, not an edge case.\n\n## Server Details\n- Server: memory\n- Changes to: tools (all write operations now wrapped with cross-process file lock)\n\n## Motivation and Context\n\nThe memory server experiences file corruption when multiple MCP server instances (spawned by different AI clients) attempt concurrent writes to the same `memory.json` file. \n\nThis is critical because:\n1. Many users run multiple AI clients (Claude Desktop, VS Code, Cursor, CLI) simultaneously\n2. Each client spawns its own mcp-server-memory process via stdio\n3. All processes share the same memory file, causing race conditions and data corruption\n4. The in-memory lock in PR #3060 only protects within a single process, not across processes\n\n## How Has This Been Tested?\n\n### 1. Single-process concurrent writes (10,000 operations)\n- **File:** `knowledge-graph.test.ts`\n- **Scenario:** 10,000 concurrent `createEntities` calls within a single process\n- **Purpose:** Validates that the lock mechanism correctly serializes rapid async operations and prevents race conditions from Promise concurrency\n\n### 2. Multi-process concurrent writes (5 processes × 2,000 = 10,000 operations)\n- **File:** `multi-process-lock.test.ts`  \n- **Scenario:** Spawns 5 separate Node.js processes, each writing 2,000 entities simultaneously to the same file\n- **Purpose:** Simulates the real-world MCP deployment where multiple AI clients spawn independent `mcp-server-memory` processes via stdio transport\n\n### Additional testing:\n- Verified lock acquisition and release under heavy contention\n- Tested with multiple simultaneous MCP client connections to same memory file\n- All existing tests continue to pass\n\n## Breaking Changes\n\nNo breaking changes:\n- Same API and tool signatures\n- Same file format (JSONL)\n- No configuration changes required\n\n## Types of changes\n- [x] Bug fix (non-breaking change which fixes an issue)\n- [ ] New feature (non-breaking change which adds functionality)\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\n- [ ] Documentation update\n\n## Checklist\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\n- [x] My changes follows MCP security best practices\n- [x] I have updated the server's README accordingly\n- [x] I have tested this with an LLM client\n- [x] My code follows the repository's style guidelines\n- [x] New and existing tests pass locally\n- [x] I have added appropriate error handling\n- [x] I have documented all environment variables and configuration options\n\n## Additional context\n\n### Related Issues and PRs\n- Fixes #2579 - Race condition causing \"Unexpected non-whitespace character after JSON\" errors\n- Supersedes #3060 - In-memory lock is insufficient for multi-process stdio scenarios\n\n### Why `proper-lockfile`?\n\n| Approach | Cross-process safe | External service | Complexity |\n|----------|-------------------|------------------|------------|\n| In-memory Promise lock (#3060) | No | No | Low |\n| `proper-lockfile` (this PR) | Yes | No | Low |\n| SQLite | Yes | No | Medium |\n| Redis | Yes | Yes | High |\n\n`proper-lockfile` provides the best balance of correctness and simplicity - true cross-process safety without external dependencies or storage migration.",
      "created_at": "2026-02-03T09:14:56Z",
      "updated_at": "2026-02-05T03:06:56Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "xz-dev:add-file-locking",
        "ref": "add-file-locking",
        "sha": "280f6fba4460e4e873073a14981632420a4bab88",
        "user": {
          "login": "xz-dev",
          "id": 32761048,
          "node_id": "MDQ6VXNlcjMyNzYxMDQ4",
          "avatar_url": "https://avatars.githubusercontent.com/u/32761048?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/xz-dev",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1148693281,
          "node_id": "R_kgDORHerIQ",
          "name": "servers",
          "full_name": "xz-dev/servers",
          "private": false,
          "owner": {
            "login": "xz-dev",
            "id": 32761048,
            "node_id": "MDQ6VXNlcjMyNzYxMDQ4",
            "avatar_url": "https://avatars.githubusercontent.com/u/32761048?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/xz-dev",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/xz-dev/servers",
          "created_at": "2026-02-03T08:59:39Z",
          "updated_at": "2026-02-03T08:59:39Z",
          "pushed_at": "2026-02-05T03:06:54Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27887,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "760829a778bdf2204e42bc929ddd3b8264b29e99",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3286"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3286"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3286"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3286/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3286/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3286/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/280f6fba4460e4e873073a14981632420a4bab88"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        2,
        2579
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3285",
      "id": 3237452842,
      "node_id": "PR_kwDONRaG_87A95wq",
      "number": 3285,
      "state": "open",
      "locked": false,
      "title": "Security system scanner ",
      "user": {
        "login": "vigil-xy",
        "id": 215553607,
        "node_id": "U_kgDODNkWRw",
        "avatar_url": "https://avatars.githubusercontent.com/u/215553607?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/vigil-xy",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Vygil is a dual-purpose security tool:\r\n\r\nCLI Scanner: Standalone command-line tool for comprehensive local security auditing\r\nMCP Server: Exposes security scanning capabilities to AI assistants via Model Context Protocol\r\nThe tool uses a modular scanner design where each security domain (network, processes, filesystem, etc.) is a separate module. All scans run in parallel for optimal performance, and results are aggregated into a comprehensive report with risk assessment.\r\n\r\n",
      "created_at": "2026-02-02T16:45:35Z",
      "updated_at": "2026-02-06T15:08:26Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "fecde6a7def6410ab02470dcd9679e1519777d2c",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "vigil-xy:main",
        "ref": "main",
        "sha": "8defc45414664e4c222cb288f21e56cfd18ca456",
        "user": {
          "login": "vigil-xy",
          "id": 215553607,
          "node_id": "U_kgDODNkWRw",
          "avatar_url": "https://avatars.githubusercontent.com/u/215553607?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/vigil-xy",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1148118067,
          "node_id": "R_kgDORG7kMw",
          "name": "vygil",
          "full_name": "vigil-xy/vygil",
          "private": false,
          "owner": {
            "login": "vigil-xy",
            "id": 215553607,
            "node_id": "U_kgDODNkWRw",
            "avatar_url": "https://avatars.githubusercontent.com/u/215553607?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/vigil-xy",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Security System Scanner ",
          "fork": true,
          "url": "https://api.github.com/repos/vigil-xy/vygil",
          "created_at": "2026-02-02T15:46:17Z",
          "updated_at": "2026-02-06T15:12:03Z",
          "pushed_at": "2026-02-06T15:08:24Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27861,
          "stargazers_count": 1,
          "watchers_count": 1,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 1,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "10d382798ec93debafe7e795fe5d1f96530dd1df",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3285"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3285"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3285"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3285/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3285/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3285/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/8defc45414664e4c222cb288f21e56cfd18ca456"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3279",
      "id": 3230994037,
      "node_id": "PR_kwDONRaG_87AlQ51",
      "number": 3279,
      "state": "open",
      "locked": false,
      "title": "docs: add MCP Bash Framework to frameworks list",
      "user": {
        "login": "yaniv-golan",
        "id": 5079117,
        "node_id": "MDQ6VXNlcjUwNzkxMTc=",
        "avatar_url": "https://avatars.githubusercontent.com/u/5079117?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/yaniv-golan",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\nAdd **[MCP Bash Framework](https://github.com/yaniv-golan/mcp-bash-framework)** to the 📚 Frameworks section under \"For servers\".\n\nMCP Bash Framework enables building MCP servers in pure Bash 3.2+ with:\n- Full MCP spec coverage (2025-11-25), including MCP Apps\n- No runtimes beyond the shell and jq/gojq\n- Tools, resources, prompts, elicitation, roots, progress, cancellation\n- Runs on macOS, Linux, and Windows (Git Bash) without Node, Python, or containers\n\nThis fills a gap in the frameworks list for shell-native MCP development.",
      "created_at": "2026-01-31T16:03:43Z",
      "updated_at": "2026-01-31T16:05:39Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "fc042396e7dddcc36fca4fdddd66c010b2256a09",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "yaniv-golan:add-mcp-bash-framework",
        "ref": "add-mcp-bash-framework",
        "sha": "4f09318df6c9be1b9a90b2e1ee70a54ae35fd2ea",
        "user": {
          "login": "yaniv-golan",
          "id": 5079117,
          "node_id": "MDQ6VXNlcjUwNzkxMTc=",
          "avatar_url": "https://avatars.githubusercontent.com/u/5079117?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/yaniv-golan",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1146745001,
          "node_id": "R_kgDORFnwqQ",
          "name": "servers",
          "full_name": "yaniv-golan/servers",
          "private": false,
          "owner": {
            "login": "yaniv-golan",
            "id": 5079117,
            "node_id": "MDQ6VXNlcjUwNzkxMTc=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5079117?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/yaniv-golan",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/yaniv-golan/servers",
          "created_at": "2026-01-31T16:00:35Z",
          "updated_at": "2026-01-31T16:00:35Z",
          "pushed_at": "2026-01-31T16:02:37Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28457,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "e6b0b0f5d355530ebdd09bc547240e556fbc6c19",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3279"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3279"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3279"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3279/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3279/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3279/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/4f09318df6c9be1b9a90b2e1ee70a54ae35fd2ea"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3277",
      "id": 3230758829,
      "node_id": "PR_kwDONRaG_87AkXet",
      "number": 3277,
      "state": "open",
      "locked": false,
      "title": "fix(filesystem): gracefully handle unavailable directories on startup",
      "user": {
        "login": "Sean-Kenneth-Doherty",
        "id": 9375875,
        "node_id": "MDQ6VXNlcjkzNzU4NzU=",
        "avatar_url": "https://avatars.githubusercontent.com/u/9375875?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Sean-Kenneth-Doherty",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\nInstead of failing entirely when any configured allowed directory is unavailable (e.g., unmounted network volume, disconnected external drive), the server now:\n\n- Warns about each unavailable directory and skips it\n- Continues starting with all available directories  \n- Only fails if NO directories are accessible\n\n## Changes\n- Modified startup validation in `src/filesystem/index.ts` to collect unavailable directories and filter them out instead of calling `process.exit(1)` on the first failure\n- Added clear warning messages showing which directories were skipped\n- Server exits with error only when zero directories are accessible\n\n## Testing\n- All 139 existing tests pass\n- Manual testing confirms:\n  - Server starts with mixed valid/invalid directories (warns and continues)\n  - Server fails gracefully with all invalid directories (helpful error message)\n\n## Impact\nThis makes the filesystem MCP server more resilient for setups involving:\n- Network shares/NAS devices\n- External drives\n- Mounted volumes\n- Any path that might be temporarily unavailable\n\nFixes #3232",
      "created_at": "2026-01-31T13:26:12Z",
      "updated_at": "2026-01-31T13:26:12Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Sean-Kenneth-Doherty:fix/filesystem-unavailable-directories",
        "ref": "fix/filesystem-unavailable-directories",
        "sha": "5ccb90b2a70c794184eb2666aedb96d7eb474789",
        "user": {
          "login": "Sean-Kenneth-Doherty",
          "id": 9375875,
          "node_id": "MDQ6VXNlcjkzNzU4NzU=",
          "avatar_url": "https://avatars.githubusercontent.com/u/9375875?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Sean-Kenneth-Doherty",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1146430429,
          "node_id": "R_kgDORFUj3Q",
          "name": "servers",
          "full_name": "Sean-Kenneth-Doherty/servers",
          "private": false,
          "owner": {
            "login": "Sean-Kenneth-Doherty",
            "id": 9375875,
            "node_id": "MDQ6VXNlcjkzNzU4NzU=",
            "avatar_url": "https://avatars.githubusercontent.com/u/9375875?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Sean-Kenneth-Doherty",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/Sean-Kenneth-Doherty/servers",
          "created_at": "2026-01-31T04:42:15Z",
          "updated_at": "2026-01-31T04:42:15Z",
          "pushed_at": "2026-01-31T13:25:58Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28458,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "e6b0b0f5d355530ebdd09bc547240e556fbc6c19",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3277"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3277"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3277"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3277/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3277/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3277/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/5ccb90b2a70c794184eb2666aedb96d7eb474789"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        3232
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3274",
      "id": 3230064075,
      "node_id": "PR_kwDONRaG_87Aht3L",
      "number": 3274,
      "state": "open",
      "locked": false,
      "title": "feat(time): add time_ prefix to tool names for consistency",
      "user": {
        "login": "Sean-Kenneth-Doherty",
        "id": 9375875,
        "node_id": "MDQ6VXNlcjkzNzU4NzU=",
        "avatar_url": "https://avatars.githubusercontent.com/u/9375875?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Sean-Kenneth-Doherty",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\nAdds a `time_` prefix to the Time MCP server tool names for consistency with other MCP servers:\n\n- `get_current_time` → `time_get_current`\n- `convert_time` → `time_convert`\n\n## Motivation\n\nThis follows the naming convention used by other MCP servers (e.g., `git_status`, `git_commit`, `git_diff`) and makes it easier to identify related tools when multiple MCP servers are registered with a client.\n\nAs noted in [issue #3201](https://github.com/modelcontextprotocol/servers/issues/3201), users integrating multiple MCP servers see tool names like:\n- `MCP_DOCKER_convert_time`\n- `MCP_DOCKER_get_current_time`\n\nWith this change, the tools become:\n- `MCP_DOCKER_time_get_current`\n- `MCP_DOCKER_time_convert`\n\nThis makes it immediately clear these tools belong to the Time server.\n\n## Changes\n\n- Updated tool name enum values in `server.py`\n- Updated README documentation and examples\n\n## Breaking Change Notice\n\n⚠️ This is a breaking change for existing users of the Time MCP server. Any automation or configuration referencing the old tool names (`get_current_time`, `convert_time`) will need to be updated.\n\nCloses #3201",
      "created_at": "2026-01-31T04:44:40Z",
      "updated_at": "2026-01-31T04:44:40Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "5417eda6141bb58a7622b7d492454d98f7e93565",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Sean-Kenneth-Doherty:feat/time-tool-prefix",
        "ref": "feat/time-tool-prefix",
        "sha": "415ddec0c54354551bcabf461bc2ab3423295d55",
        "user": {
          "login": "Sean-Kenneth-Doherty",
          "id": 9375875,
          "node_id": "MDQ6VXNlcjkzNzU4NzU=",
          "avatar_url": "https://avatars.githubusercontent.com/u/9375875?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Sean-Kenneth-Doherty",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1146430429,
          "node_id": "R_kgDORFUj3Q",
          "name": "servers",
          "full_name": "Sean-Kenneth-Doherty/servers",
          "private": false,
          "owner": {
            "login": "Sean-Kenneth-Doherty",
            "id": 9375875,
            "node_id": "MDQ6VXNlcjkzNzU4NzU=",
            "avatar_url": "https://avatars.githubusercontent.com/u/9375875?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Sean-Kenneth-Doherty",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/Sean-Kenneth-Doherty/servers",
          "created_at": "2026-01-31T04:42:15Z",
          "updated_at": "2026-01-31T04:42:15Z",
          "pushed_at": "2026-01-31T13:25:58Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28458,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "e6b0b0f5d355530ebdd09bc547240e556fbc6c19",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3274"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3274"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3274"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3274/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3274/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3274/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/415ddec0c54354551bcabf461bc2ab3423295d55"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        3201
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3273",
      "id": 3229907870,
      "node_id": "PR_kwDONRaG_87AhHue",
      "number": 3273,
      "state": "open",
      "locked": false,
      "title": "added read_binary_file tool for file system MCP server",
      "user": {
        "login": "robertyates",
        "id": 812444,
        "node_id": "MDQ6VXNlcjgxMjQ0NA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/812444?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/robertyates",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "added a read_binary_file tool to the file system MCP Server\r\n\r\n## Description\r\n\r\n## Server Details\r\n- Server: filesystem\r\n- Changes to: added read_binary_file tool\r\n\r\n## Motivation and Context\r\nI was trying to use the existing server to fetch an excel file and it fails\r\n\r\n## How Has This Been Tested?\r\nI have a custom agent that this works in and also include a unit test\r\n\r\n## Breaking Changes\r\npure additive, although read_file should likely now be removed vs. just being marked deprecated\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2026-01-31T02:44:30Z",
      "updated_at": "2026-01-31T02:44:30Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "013f01af70a5589f51de343743b4a7fbb3b4f441",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "robertyates:read-binary-file",
        "ref": "read-binary-file",
        "sha": "30957b383071500fe65abe89a76f129e38442b56",
        "user": {
          "login": "robertyates",
          "id": 812444,
          "node_id": "MDQ6VXNlcjgxMjQ0NA==",
          "avatar_url": "https://avatars.githubusercontent.com/u/812444?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/robertyates",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1146386817,
          "node_id": "R_kgDORFR5gQ",
          "name": "servers",
          "full_name": "robertyates/servers",
          "private": false,
          "owner": {
            "login": "robertyates",
            "id": 812444,
            "node_id": "MDQ6VXNlcjgxMjQ0NA==",
            "avatar_url": "https://avatars.githubusercontent.com/u/812444?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/robertyates",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/robertyates/servers",
          "created_at": "2026-01-31T02:34:56Z",
          "updated_at": "2026-01-31T02:34:56Z",
          "pushed_at": "2026-02-01T19:13:03Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28467,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "e6b0b0f5d355530ebdd09bc547240e556fbc6c19",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3273"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3273"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3273"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3273/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3273/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3273/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/30957b383071500fe65abe89a76f129e38442b56"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3270",
      "id": 3228762133,
      "node_id": "PR_kwDONRaG_87AcwAV",
      "number": 3270,
      "state": "open",
      "locked": false,
      "title": "fix(filesystem): fix structuredContent tests and update dependencies",
      "user": {
        "login": "forbiddancherry",
        "id": 256862373,
        "node_id": "U_kgDOD09opQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/256862373?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/forbiddancherry",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n- Add `tools.structuredContent` capability to test client to receive structured content from server (MCP spec 2025-06-18)\n- Use `fs.realpath()` for temp directory to resolve macOS symlinks (`/var` -> `/private/var`)\n- Update vitest to v4.0.18 to fix security vulnerabilities\n- Update @vitest/coverage-v8 to v4.0.18\n\n## Test plan\n- [x] All 195 tests pass\n- [x] `npm audit` shows 0 vulnerabilities\n- [x] Build succeeds\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
      "created_at": "2026-01-30T17:55:31Z",
      "updated_at": "2026-01-30T17:55:31Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "820e4ee7625e0cea920ac17905ed6a32e7a77587",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "forbiddancherry:fix/structuredContent-tests",
        "ref": "fix/structuredContent-tests",
        "sha": "138679aab8bcb16e91ef1a84874c205767011d03",
        "user": {
          "login": "forbiddancherry",
          "id": 256862373,
          "node_id": "U_kgDOD09opQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/256862373?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/forbiddancherry",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1146165085,
          "node_id": "R_kgDORFEXXQ",
          "name": "servers",
          "full_name": "forbiddancherry/servers",
          "private": false,
          "owner": {
            "login": "forbiddancherry",
            "id": 256862373,
            "node_id": "U_kgDOD09opQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/256862373?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/forbiddancherry",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/forbiddancherry/servers",
          "created_at": "2026-01-30T17:55:02Z",
          "updated_at": "2026-01-30T17:55:02Z",
          "pushed_at": "2026-01-30T17:55:19Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28466,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "e6b0b0f5d355530ebdd09bc547240e556fbc6c19",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3270"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3270"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3270"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3270/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3270/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3270/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/138679aab8bcb16e91ef1a84874c205767011d03"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3261",
      "id": 3219922628,
      "node_id": "PR_kwDONRaG_86_7B7E",
      "number": 3261,
      "state": "open",
      "locked": false,
      "title": "docs: add Codex CLI usage instructions to reference servers",
      "user": {
        "login": "piyusht-square",
        "id": 112008146,
        "node_id": "U_kgDOBq0b0g",
        "avatar_url": "https://avatars.githubusercontent.com/u/112008146?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/piyusht-square",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\nAdds 'Usage with Codex CLI' section to all reference servers that were missing it, aligning them with `sequentialthinking` which already had this documentation.\n\n## Changes\n\nAdded Codex CLI installation instructions to:\n- `everything`\n- `fetch`\n- `filesystem`\n- `git`\n- `memory`\n- `time`\n\n## Motivation\n\n[Codex CLI](https://github.com/openai/codex) is a popular coding agent that supports MCP. Currently, only `sequentialthinking` documents how to add it via Codex CLI. This PR provides consistent documentation across all reference servers.\n\n## Example\n\n```bash\ncodex mcp add memory -- npx -y @modelcontextprotocol/server-memory\n```",
      "created_at": "2026-01-28T18:11:28Z",
      "updated_at": "2026-01-28T18:11:28Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "f88223c7fb967aa39e932284a57f89f64b171b0e",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "piyusht-square:add-codex-cli-docs",
        "ref": "add-codex-cli-docs",
        "sha": "1e54bdebb0dd11f8391f0a7c54abae857050e943",
        "user": {
          "login": "piyusht-square",
          "id": 112008146,
          "node_id": "U_kgDOBq0b0g",
          "avatar_url": "https://avatars.githubusercontent.com/u/112008146?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/piyusht-square",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1144476044,
          "node_id": "R_kgDORDdRjA",
          "name": "servers",
          "full_name": "piyusht-square/servers",
          "private": false,
          "owner": {
            "login": "piyusht-square",
            "id": 112008146,
            "node_id": "U_kgDOBq0b0g",
            "avatar_url": "https://avatars.githubusercontent.com/u/112008146?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/piyusht-square",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/piyusht-square/servers",
          "created_at": "2026-01-28T18:10:45Z",
          "updated_at": "2026-01-28T18:10:45Z",
          "pushed_at": "2026-01-28T22:31:02Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28471,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "e6b0b0f5d355530ebdd09bc547240e556fbc6c19",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3261"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3261"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3261"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3261/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3261/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3261/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/1e54bdebb0dd11f8391f0a7c54abae857050e943"
        }
      },
      "author_association": "CONTRIBUTOR",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3260",
      "id": 3219656845,
      "node_id": "PR_kwDONRaG_86_6BCN",
      "number": 3260,
      "state": "open",
      "locked": false,
      "title": "ci: add MCP interface diff workflow for Everything server",
      "user": {
        "login": "SamMorrowDrums",
        "id": 4811358,
        "node_id": "MDQ6VXNlcjQ4MTEzNTg=",
        "avatar_url": "https://avatars.githubusercontent.com/u/4811358?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/SamMorrowDrums",
        "type": "User",
        "user_view_type": "public",
        "site_admin": true
      },
      "body": "## Summary\n\nAdds a GitHub Actions workflow that tracks public interface changes to the Everything MCP server. This provides clear visibility into how the reference implementation evolves over time—useful for SDK compliance validation, catching unintended regressions, and reviewing PRs that modify the server interface.\n\n## Motivation\n\nThe Everything server is the reference implementation that exercises all MCP protocol features. Changes to its public interface (tools, resources, prompts, capabilities) often signal:\n- New protocol features being demonstrated\n- SDK updates affecting server behavior  \n- Potential breaking changes\n\nCurrently there's no automated way to see these changes at a glance. This workflow surfaces them directly in the GitHub Actions summary.\n\n**Related discussion:** [modelcontextprotocol/inspector#1034](https://github.com/modelcontextprotocol/inspector/issues/1034) - Interest in using mcp-server-diff for SDK compliance testing with the Everything server.\n\n## What the workflow does\n\n1. **Triggers** on PRs and pushes affecting `src/everything/`\n2. **Compares** current branch against merge-base (PRs) or previous commit (pushes)\n3. **Generates** a diff report showing changes to tools, resources, prompts, and capabilities\n4. **Supports** manual `workflow_dispatch` for comparing any two refs (commits, tags, branches)\n\n## Example output\n\nHere's a real diff between commit `737ce98` and the current HEAD of the Everything server:\n\n```diff\n--- base/initialize.json\n+++ target/initialize.json\n\n+ capabilities.tasks: {\"cancel\":{},\"list\":{},\"requests\":{\"tools\":{\"call\":{}}}}\n```\n\n```diff\n--- base/tools.json\n+++ target/tools.json\n\n+ tools[simulate-research-query]: {\"description\":\"Simulates a deep research operation...\"}\n```\n\nThis clearly shows the new Tasks capability and the `simulate-research-query` tool that were added.\n\n## Real-world example\n\nSee the MCP diff action in use on [github/github-mcp-server](https://github.com/github/github-mcp-server/actions/runs/21258183290) - this workflow run shows interface changes from the \"Generate server instructions in Inventory\" PR.\n\n## Workflow features\n\n- ✅ **Minimal permissions** (`contents: read` only)\n- ✅ **Pinned action versions** with SHA references\n- ✅ **Path filtering** - only runs when Everything server changes\n- ✅ **Manual trigger** - compare any refs via workflow_dispatch\n- ✅ **Clear summary** - results appear directly in GitHub Actions UI\n\n## Testing\n\nThe workflow uses [SamMorrowDrums/mcp-server-diff](https://github.com/SamMorrowDrums/mcp-server-diff) which is also available as a CLI:\n\n```bash\n# Try it locally\nnpx mcp-server-diff@latest -b \"node dist/index.js stdio\" -t \"node dist/index.js stdio\" -o markdown\n```\n",
      "created_at": "2026-01-28T16:58:44Z",
      "updated_at": "2026-02-02T22:18:32Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "ed6c66207672d8f844e693ad1578ad6bb57a2c06",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "SamMorrowDrums:add-everything-server-mcp-diff-workflow",
        "ref": "add-everything-server-mcp-diff-workflow",
        "sha": "a187556be462b94e668ed8966f530e1d8a470e7f",
        "user": {
          "login": "SamMorrowDrums",
          "id": 4811358,
          "node_id": "MDQ6VXNlcjQ4MTEzNTg=",
          "avatar_url": "https://avatars.githubusercontent.com/u/4811358?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/SamMorrowDrums",
          "type": "User",
          "user_view_type": "public",
          "site_admin": true
        },
        "repo": {
          "id": 1144399233,
          "node_id": "R_kgDORDYlgQ",
          "name": "official-mcp-servers",
          "full_name": "SamMorrowDrums/official-mcp-servers",
          "private": false,
          "owner": {
            "login": "SamMorrowDrums",
            "id": 4811358,
            "node_id": "MDQ6VXNlcjQ4MTEzNTg=",
            "avatar_url": "https://avatars.githubusercontent.com/u/4811358?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/SamMorrowDrums",
            "type": "User",
            "user_view_type": "public",
            "site_admin": true
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/SamMorrowDrums/official-mcp-servers",
          "created_at": "2026-01-28T16:46:55Z",
          "updated_at": "2026-01-28T16:46:55Z",
          "pushed_at": "2026-01-28T17:17:36Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27975,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "e6b0b0f5d355530ebdd09bc547240e556fbc6c19",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3260"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3260"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3260"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3260/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3260/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3260/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/a187556be462b94e668ed8966f530e1d8a470e7f"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        1
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3254",
      "id": 3212449005,
      "node_id": "PR_kwDONRaG_86_ehTt",
      "number": 3254,
      "state": "open",
      "locked": false,
      "title": "fix(filesystem): resolve symlinked allowed directories to both forms",
      "user": {
        "login": "wingding12",
        "id": 144286538,
        "node_id": "U_kgDOCJmjSg",
        "avatar_url": "https://avatars.githubusercontent.com/u/144286538?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/wingding12",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\r\n\r\nFixes #3253\r\n\r\n**Problem**\r\nOn macOS, `/tmp` is a symlink to `/private/tmp`. When users specify `/tmp` as an allowed directory:\r\n1. Server startup resolves `/tmp` to `/private/tmp` and stores only `/private/tmp` in allowedDirectories\r\n2. When user requests `/tmp/file.txt`, the initial validation check fails because `/tmp` doesn't match `/private/tmp`\r\n3. User gets \"Access denied - path outside allowed directories\" error\r\n\r\n**Solution**\r\nStore both the original normalized path andthe resolved path in `allowedDirectories`. This allows users to access files through either form:\r\n- `/tmp/file.txt` matches `/tmp` in allowedDirectories\r\n- `/private/tmp/file.txt` matches `/private/tmp` in allowedDirectories\r\n\r\n## Changes\r\n- `src/filesystem/index.ts`: Modified allowed directory initialization to store both original and resolved paths when they differ\r\n- `src/filesystem/__tests__/path-validation.test.ts`: Added test for the symlink behavior\r\n\r\n## Tests\r\n- [x] Added new test \"allows paths through both original and resolved symlink directories\"\r\n- [x] Verified fix works on macOS by observing both paths in allowedDirectories output\r\n\r\n## Reproduction\r\nBefore fix:\r\n```bash\r\nnpx -y @modelcontextprotocol/server-filesystem /tmp\r\n# Then request /tmp/test.txt -> REJECTED\r\n```\r\n\r\nAfter fix:\r\n```bash\r\nnpx -y @modelcontextprotocol/server-filesystem /tmp\r\n# Server logs: allowed directories: ['/tmp', '/private/tmp']\r\n# Then request /tmp/test.txt -> ACCEPTED\r\n```",
      "created_at": "2026-01-26T23:29:10Z",
      "updated_at": "2026-01-26T23:33:31Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "69299ef1d8e1fe88cae3e027abbbab41787b4410",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "wingding12:fix/filesystem-macos-symlink-path-resolution",
        "ref": "fix/filesystem-macos-symlink-path-resolution",
        "sha": "8f2e9cc67884ccf57d8491da1475ef1baff3271c",
        "user": {
          "login": "wingding12",
          "id": 144286538,
          "node_id": "U_kgDOCJmjSg",
          "avatar_url": "https://avatars.githubusercontent.com/u/144286538?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/wingding12",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1142849227,
          "node_id": "R_kgDORB5-yw",
          "name": "servers",
          "full_name": "wingding12/servers",
          "private": false,
          "owner": {
            "login": "wingding12",
            "id": 144286538,
            "node_id": "U_kgDOCJmjSg",
            "avatar_url": "https://avatars.githubusercontent.com/u/144286538?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/wingding12",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/wingding12/servers",
          "created_at": "2026-01-26T23:26:26Z",
          "updated_at": "2026-01-26T23:26:27Z",
          "pushed_at": "2026-01-26T23:28:56Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28384,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "549dd025e25fc4bf9ddd07792662a0c64383281c",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3254"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3254"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3254"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3254/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3254/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3254/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/8f2e9cc67884ccf57d8491da1475ef1baff3271c"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        3253
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3252",
      "id": 3210744691,
      "node_id": "PR_kwDONRaG_86_YBNz",
      "number": 3252,
      "state": "open",
      "locked": false,
      "title": "fix(everything): allow re-registration of session resources",
      "user": {
        "login": "dotsetgreg",
        "id": 249987710,
        "node_id": "U_kgDODuaCfg",
        "avatar_url": "https://avatars.githubusercontent.com/u/249987710?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/dotsetgreg",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\n- Fix \"Resource already registered\" error when calling tools like `gzip-file-as-resource` multiple times with the same output name\n- Track registered resources by URI in a module-level Map\n- Remove existing resource before registering a new one with the same URI\n\n## Problem\n\nWhen a tool that creates session resources (like `gzip-file-as-resource`) is called multiple times with the same output name, the server throws:\n\n```\nError: Resource demo://resource/session/README.md.gz is already registered\n```\n\nThis is particularly problematic because:\n1. The `gzip-file-as-resource` tool has a default name of `README.md.gz`\n2. LLM agents often retry tool calls or call tools multiple times with default parameters\n3. There was no way to update or overwrite an existing resource\n\n## Solution\n\nThe fix tracks registered session resources by URI in a Map, and before registering a new resource, it checks if one already exists with the same URI. If so, it uses the SDK's `remove()` method to unregister the old resource first, then registers the new one.\n\n## Test plan\n\n- [x] Called `gzip-file-as-resource` 10 times with default parameters - all succeed\n- [x] Called with same explicit name multiple times - succeeds\n- [x] Build passes with no TypeScript errors\n- [x] Verified using [Bellwether](https://bellwether.sh) MCP server validation tool\n\n## How this was found\n\nThis bug was discovered using [Bellwether](https://bellwether.sh), an open-source MCP server validation and documentation tool. Bellwether runs automated schema validation and behavioral testing against MCP servers, which caught this regression when repeatedly testing the `gzip-file-as-resource` tool.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
      "created_at": "2026-01-26T14:12:29Z",
      "updated_at": "2026-01-26T14:12:29Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "097b3bb1d1189d8dd9b2aa157d8a1b93e0ed9442",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "dotsetgreg:fix/session-resource-reregistration",
        "ref": "fix/session-resource-reregistration",
        "sha": "3e1be88c3bf20bcaf8cb007d190c708f69057fee",
        "user": {
          "login": "dotsetgreg",
          "id": 249987710,
          "node_id": "U_kgDODuaCfg",
          "avatar_url": "https://avatars.githubusercontent.com/u/249987710?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/dotsetgreg",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1142514850,
          "node_id": "R_kgDORBlkog",
          "name": "servers",
          "full_name": "dotsetgreg/servers",
          "private": false,
          "owner": {
            "login": "dotsetgreg",
            "id": 249987710,
            "node_id": "U_kgDODuaCfg",
            "avatar_url": "https://avatars.githubusercontent.com/u/249987710?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/dotsetgreg",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/dotsetgreg/servers",
          "created_at": "2026-01-26T14:11:23Z",
          "updated_at": "2026-01-26T14:11:23Z",
          "pushed_at": "2026-01-26T14:11:29Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28381,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "549dd025e25fc4bf9ddd07792662a0c64383281c",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3252"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3252"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3252"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3252/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3252/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3252/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/3e1be88c3bf20bcaf8cb007d190c708f69057fee"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3251",
      "id": 3210201765,
      "node_id": "PR_kwDONRaG_86_V8ql",
      "number": 3251,
      "state": "open",
      "locked": false,
      "title": "fix: Update the name and link for Apache Gravtino",
      "user": {
        "login": "shaofengshi",
        "id": 5411805,
        "node_id": "MDQ6VXNlcjU0MTE4MDU=",
        "avatar_url": "https://avatars.githubusercontent.com/u/5411805?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/shaofengshi",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\nThis PR includes the following changes:\r\n1) The name \"Apache Gravitino(incubating)\" is inaccurate now, as the project has been graduated from Apache Incubator in June of 2026, so its formal name is \"Apache Gravitino\" now.\r\n2) The code of Gravitino MCP server has been merged into its main repository, with a seperate folder; \r\n3) Add a link to the documentation page on Gravitino asf web site.\r\n\r\n(BTW, I'm one of the PMC member of Apache Gravitino project.)\r\n\r\n## Motivation and Context\r\nKeep the information updated.\r\n\r\n## How Has This Been Tested?\r\nWe have integration test to ensure the functionality.\r\n\r\n## Breaking Changes\r\nNo\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\nNo.",
      "created_at": "2026-01-26T11:08:45Z",
      "updated_at": "2026-01-27T03:13:47Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "73a950685cbca41942d68d9a68192f7c4d39a1e9",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "shaofengshi:update_gravitino_mcp",
        "ref": "update_gravitino_mcp",
        "sha": "c1f439e22dea4d2f613611edf428b15179673bdd",
        "user": {
          "login": "shaofengshi",
          "id": 5411805,
          "node_id": "MDQ6VXNlcjU0MTE4MDU=",
          "avatar_url": "https://avatars.githubusercontent.com/u/5411805?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/shaofengshi",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 967237482,
          "node_id": "R_kgDOOabfag",
          "name": "mcp-servers",
          "full_name": "shaofengshi/mcp-servers",
          "private": false,
          "owner": {
            "login": "shaofengshi",
            "id": 5411805,
            "node_id": "MDQ6VXNlcjU0MTE4MDU=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5411805?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/shaofengshi",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/shaofengshi/mcp-servers",
          "created_at": "2025-04-16T06:29:18Z",
          "updated_at": "2025-04-16T06:29:18Z",
          "pushed_at": "2026-01-27T03:13:45Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28091,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "b68d67d1556022a9de61e3e758033adfa8e61615",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3251"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3251"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3251"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3251/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3251/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3251/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/c1f439e22dea4d2f613611edf428b15179673bdd"
        }
      },
      "author_association": "CONTRIBUTOR",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3246",
      "id": 3207295768,
      "node_id": "PR_kwDONRaG_86_K3MY",
      "number": 3246,
      "state": "open",
      "locked": false,
      "title": "feat(everything): add tool-level annotations to get-annotated-message",
      "user": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\n\r\nAdd `ToolAnnotations` to all 18 tools in the Everything example server. Previously only `get-annotated-message` had annotations; now every tool explicitly declares `readOnlyHint`, `destructiveHint`, `idempotentHint`, and `openWorldHint` so the server serves as a complete reference for developers implementing tool annotations per the MCP spec.\r\n\r\n## Server Details\r\n\r\n- Server: everything\r\n- Changes to: tools, docs\r\n\r\n## Motivation and Context\r\n\r\nTool annotations are part of the MCP specification and provide hints to clients about tool behavior:\r\n\r\n| Annotation | Purpose |\r\n|------------|---------|\r\n| `readOnlyHint` | Indicates the tool does not modify its environment |\r\n| `destructiveHint` | Indicates whether the tool may perform destructive updates |\r\n| `idempotentHint` | Indicates whether repeated calls with same args have no additional effect |\r\n| `openWorldHint` | Indicates whether the tool interacts with external entities |\r\n\r\nThe Everything server is the canonical MCP reference/demo server, yet only 1 of its 18 tools had `ToolAnnotations`. Adding annotations to all tools makes it a complete reference for:\r\n- Client developers testing annotation support\r\n- Server developers learning proper tool annotation usage\r\n- Integration testing of annotation handling\r\n\r\n### Tool Annotations Added\r\n\r\n| Tool | readOnlyHint | destructiveHint | idempotentHint | openWorldHint | Rationale |\r\n|------|:---:|:---:|:---:|:---:|-----------|\r\n| `echo` | `true` | `false` | `true` | `false` | Pure function, echoes input back |\r\n| `get-annotated-message` | `true` | `false` | `true` | `false` | _(already existed)_ Returns annotated messages |\r\n| `get-env` | `true` | `false` | `true` | `false` | Reads process.env, no modifications |\r\n| `get-resource-links` | `true` | `false` | `true` | `false` | Returns links to internal resources |\r\n| `get-resource-reference` | `true` | `false` | `true` | `false` | Returns internal resource references |\r\n| `get-roots-list` | `true` | `false` | `true` | `false` | Reads client roots, no modifications |\r\n| `get-structured-content` | `true` | `false` | `true` | `false` | Returns simulated weather data |\r\n| `get-sum` | `true` | `false` | `true` | `false` | Pure arithmetic computation |\r\n| `get-tiny-image` | `true` | `false` | `true` | `false` | Returns a static encoded image |\r\n| `trigger-long-running-operation` | `true` | `false` | `true` | `false` | Simulates work with progress, no lasting state change |\r\n| `toggle-simulated-logging` | `false` | `false` | `false` | `false` | Toggles server-side logging state (not idempotent) |\r\n| `toggle-subscriber-updates` | `false` | `false` | `false` | `false` | Toggles resource subscription updates (not idempotent) |\r\n| `trigger-elicitation-request` | `false` | `false` | `false` | `false` | Triggers user-facing dialog via client |\r\n| `trigger-elicitation-request-async` | `false` | `false` | `false` | `false` | Async task-based elicitation via client |\r\n| `trigger-sampling-request` | `false` | `false` | `false` | `true` | Triggers LLM inference (external API) |\r\n| `trigger-sampling-request-async` | `false` | `false` | `false` | `true` | Async task-based LLM inference (external API) |\r\n| `gzip-file-as-resource` | `false` | `false` | `true` | `true` | Fetches URLs and creates session resources; same input produces same output |\r\n| `simulate-research-query` | `false` | `false` | `false` | `false` | Creates background tasks with internal state |\r\n\r\n## How Has This Been Tested?\r\n\r\n- TypeScript compilation passes (`npm run build`)\r\n- Verified annotations are accepted by SDK types with no type errors\r\n- Tested with MCP Inspector to confirm annotations appear in `tools/list` responses\r\n\r\nTested with this version of Inspector in this open PR: https://github.com/modelcontextprotocol/inspector/pull/1066\r\n\r\n## Breaking Changes\r\n\r\nNone. Annotations are optional metadata hints and do not affect tool behavior.\r\n\r\n## Types of changes\r\n\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [x] Documentation update\r\n\r\n## Checklist\r\n\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the documentation accordingly\r\n- [ ] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n\r\nThe annotation values follow the MCP spec semantics:\r\n- **readOnlyHint**: `true` when the tool only returns data with no side effects\r\n- **destructiveHint**: `false` for all tools since none delete or overwrite external data\r\n- **idempotentHint**: `true` when repeated calls with the same args produce the same result and no additional environmental effect; `false` for toggles, user-interactive tools, and task-creating tools\r\n- **openWorldHint**: `true` only for tools that interact with external systems (URL fetching, LLM sampling); `false` for tools operating within the closed MCP server/client domain",
      "created_at": "2026-01-24T20:13:33Z",
      "updated_at": "2026-02-13T02:11:25Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "a95817b0394cb58b2b5df07141d9cf613f29891e",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {
        "0": {
          "login": "cliffhall",
          "id": 871933,
          "node_id": "MDQ6VXNlcjg3MTkzMw==",
          "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/cliffhall",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "1": {
          "login": "evalstate",
          "id": 1936278,
          "node_id": "MDQ6VXNlcjE5MzYyNzg=",
          "avatar_url": "https://avatars.githubusercontent.com/u/1936278?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/evalstate",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "olaservo:fix/tool-annotations",
        "ref": "fix/tool-annotations",
        "sha": "8f8f5be91ed38cc52a82ea3fde63b9c5e1769791",
        "user": {
          "login": "olaservo",
          "id": 16480113,
          "node_id": "MDQ6VXNlcjE2NDgwMTEz",
          "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/olaservo",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 932850603,
          "node_id": "R_kgDON5orqw",
          "name": "servers",
          "full_name": "olaservo/servers",
          "private": false,
          "owner": {
            "login": "olaservo",
            "id": 16480113,
            "node_id": "MDQ6VXNlcjE2NDgwMTEz",
            "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/olaservo",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/olaservo/servers",
          "created_at": "2025-02-14T16:28:20Z",
          "updated_at": "2026-01-24T17:22:39Z",
          "pushed_at": "2026-02-13T02:11:23Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28269,
          "stargazers_count": 1,
          "watchers_count": 1,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 1,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3246"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3246"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3246"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3246/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3246/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3246/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/8f8f5be91ed38cc52a82ea3fde63b9c5e1769791"
        }
      },
      "author_association": "MEMBER",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3245",
      "id": 3206885149,
      "node_id": "PR_kwDONRaG_86_JS8d",
      "number": 3245,
      "state": "open",
      "locked": false,
      "title": "test(filesystem): add MCP SDK regression coverage for directory_tree",
      "user": {
        "login": "lopopolo-openai",
        "id": 176426329,
        "node_id": "U_kgDOCoQNWQ",
        "avatar_url": "https://avatars.githubusercontent.com/u/176426329?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/lopopolo-openai",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\nThis PR **adds regression test coverage only** for a `directory_tree` structured-content validation bug that appears to have already been fixed upstream.\n\nThere are **no runtime behavior changes** in this PR.\n\n## Context\n\nThe `-32602` error reported in:\n\n- https://github.com/modelcontextprotocol/servers/issues/3106\n- https://github.com/modelcontextprotocol/servers/issues/3093\n\noccurs when a tool declares `outputSchema: { content: string }` but returns `structuredContent.content` as an **array**.\n\nFrom git history, this appears to have been fixed in:\n\n- `e6933ca` — \"Fix: Changed structuredContent output to match outputSchema (#3099)\" (2025-12-11)\n\nNote: I opened this PR after seeing the open bug reports and reproducing the issue in an older build, but I did not initially confirm that `main` already contained the fix. I’m keeping this PR scoped to test coverage in case it’s still useful as a regression guard.\n\n## What this PR does\n\n- Adds `src/filesystem/__tests__/directory-tree.mcp-sdk.test.ts`\n  - Uses `@modelcontextprotocol/sdk` + `StdioClientTransport` to call `directory_tree` end-to-end.\n  - Asserts that `structuredContent.content` is a `string` and JSON-parseable.\n- Makes `structured-content.test.ts` slightly more robust on macOS by resolving the temp directory with `fs.realpath()` so the allowlist path matches `/private/...` temp paths.\n\nThis is intended to help prevent reintroducing the same outputSchema/structuredContent mismatch.\n\n## Minimal reproduction snippet (for older builds)\n\nI was able to reproduce the `-32602` validation error by running the filesystem server over stdio and calling `directory_tree` through the MCP SDK client.\n\nMaintainers can run the following snippet directly (Node 20+):\n\n```ts\nimport { Client } from '@modelcontextprotocol/sdk/client/index.js';\nimport { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';\nimport fs from 'node:fs/promises';\nimport os from 'node:os';\nimport path from 'node:path';\n\nconst tmp = await fs.mkdtemp(path.join(os.tmpdir(), 'mcp-fs-tree-'));\nconst root = await fs.realpath(tmp);\nawait fs.writeFile(path.join(root, 'a.txt'), 'hello');\n\nconst transport = new StdioClientTransport({\n  command: 'npx',\n  args: ['-y', '@modelcontextprotocol/server-filesystem', root],\n});\n\nconst client = new Client({ name: 'debug-client', version: '1.0.0' }, { capabilities: {} });\nawait client.connect(transport);\n\nconst result = await client.callTool({\n  name: 'directory_tree',\n  arguments: { path: root },\n});\n\nconsole.log(result.structuredContent);\nawait client.close();\n```\n\nOn buggy builds, this call throws `McpError: -32602 ... Expected string, received array at path: [\"content\"]`.\n\n## Release context\n\nI have not traced the exact release tag for `e6933ca`, but based on timestamps it looks like the fix (2025-12-11) should be included in npm releases published **after that date** (for example `@modelcontextprotocol/server-filesystem@2025.12.18` and later).\n\nHappy to update this PR with the exact release tag if you'd like me to track it down precisely.\n\n## Test plan\n\n- `npm test --workspace @modelcontextprotocol/server-filesystem`\n\n## Follow-up suggestion (optional)\n\nIf you'd like, I can follow up with a small CI-level \"functional\" test job that runs a tiny MCP SDK client against the built `dist/index.js` binaries for select servers (filesystem, memory, etc.) to assert that schema validation passes for a few representative tool calls.\n\nI didn't include CI changes in this PR since I wasn't sure how you'd want to scope cross-package functional tests.\n\n## Authorship note\n\nThis contribution (bug identification, repro, test updates, and PR drafting) was authored with OpenAI Codex.\n",
      "created_at": "2026-01-24T16:13:10Z",
      "updated_at": "2026-01-24T16:23:56Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "23062cfc26e941c69ac61c4ca7d6e5baae3c55af",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "lopopolo-openai:fix/filesystem-directory-tree-structured-content-regression-test",
        "ref": "fix/filesystem-directory-tree-structured-content-regression-test",
        "sha": "7a3588a9285962e5c21847998bdccdc79e34c0e6",
        "user": {
          "login": "lopopolo-openai",
          "id": 176426329,
          "node_id": "U_kgDOCoQNWQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/176426329?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/lopopolo-openai",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1141302403,
          "node_id": "R_kgDORAbkgw",
          "name": "servers",
          "full_name": "lopopolo-openai/servers",
          "private": false,
          "owner": {
            "login": "lopopolo-openai",
            "id": 176426329,
            "node_id": "U_kgDOCoQNWQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/176426329?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/lopopolo-openai",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/lopopolo-openai/servers",
          "created_at": "2026-01-24T16:12:31Z",
          "updated_at": "2026-01-24T16:12:32Z",
          "pushed_at": "2026-01-24T16:14:13Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28368,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "eedb060099be188be7b26d2f37ab898c0b25dba0",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3245"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3245"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3245"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3245/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3245/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3245/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/7a3588a9285962e5c21847998bdccdc79e34c0e6"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3243",
      "id": 3205696343,
      "node_id": "PR_kwDONRaG_86_EwtX",
      "number": 3243,
      "state": "open",
      "locked": false,
      "title": "Enable Dependabot",
      "user": {
        "login": "koic",
        "id": 13203,
        "node_id": "MDQ6VXNlcjEzMjAz",
        "avatar_url": "https://avatars.githubusercontent.com/u/13203?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/koic",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Motivation and Context\r\n\r\nFollow-up to https://github.com/modelcontextprotocol/servers/pull/3233.\r\n\r\nConfigure Dependabot to automatically detect updates to the actions used in GitHub Actions (e.g., `actions/checkout`) and create pull requests for them.\r\n\r\nBased on experience, checking for updates on a weekly interval should work well.\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [ ] I have updated the server's README accordingly\r\n- [ ] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [ ] I have added appropriate error handling\r\n- [ ] I have documented all environment variables and configuration options\r\n",
      "created_at": "2026-01-24T04:17:16Z",
      "updated_at": "2026-01-24T04:17:16Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "4be71025d6b4fe5b21be8427aaf58b961ef22d77",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "koic:enable_dependabot",
        "ref": "enable_dependabot",
        "sha": "e73b9a2f9ace688c6a38ccf50ff6e34c8d1d000d",
        "user": {
          "login": "koic",
          "id": 13203,
          "node_id": "MDQ6VXNlcjEzMjAz",
          "avatar_url": "https://avatars.githubusercontent.com/u/13203?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/koic",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 965004644,
          "node_id": "R_kgDOOYTNZA",
          "name": "servers",
          "full_name": "koic/servers",
          "private": false,
          "owner": {
            "login": "koic",
            "id": 13203,
            "node_id": "MDQ6VXNlcjEzMjAz",
            "avatar_url": "https://avatars.githubusercontent.com/u/13203?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/koic",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/koic/servers",
          "created_at": "2025-04-12T07:43:12Z",
          "updated_at": "2025-04-12T07:43:12Z",
          "pushed_at": "2026-01-24T04:15:40Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27774,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "eedb060099be188be7b26d2f37ab898c0b25dba0",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3243"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3243"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3243"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3243/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3243/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3243/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/e73b9a2f9ace688c6a38ccf50ff6e34c8d1d000d"
        }
      },
      "author_association": "MEMBER",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3238",
      "id": 3195795749,
      "node_id": "PR_kwDONRaG_86-e_kl",
      "number": 3238,
      "state": "open",
      "locked": false,
      "title": "fix (filesystem): Add UTF-8 encoding and Unicode normalization for umlauts and symlinks",
      "user": {
        "login": "kernhuber",
        "id": 90188651,
        "node_id": "MDQ6VXNlcjkwMTg4NjUx",
        "avatar_url": "https://avatars.githubusercontent.com/u/90188651?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/kernhuber",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "\r\n<!-- Provide a brief description of your changes -->\r\n## Description\r\nI found that working with directories/filesystems on macOS did not work when path names contained umlauts (ä, ö, ü, ß). The same was true when using symbolic links which involved such characters. \r\n\r\nThe root cause was threefold:\r\n1. Missing UTF-8 encoding initialization for Windows STDIO communication\r\n2. Lack of Unicode normalization (NFC vs NFD forms causing string comparison failures)\r\n3. Inconsistent handling of symlinks pointing to or containing paths with umlauts\r\n\r\nThis PR fixes these issues by:\r\n- Adding UTF-8 encoding initialization for Windows STDIO\r\n- Implementing Unicode NFC normalization in path-utils\r\n- Improving symlink handling with proper encoding support\r\n- Adding better error messages for encoding-related issues\r\n\r\nThe fix benefits all languages with diacritical marks (German, French, Spanish, Nordic, Eastern European, etc.).\r\n\r\n## Publishing Your Server\r\n**Note: We are no longer accepting PRs to add servers to the README.** Instead, please publish your server to the [MCP Server Registry](https://github.com/modelcontextprotocol/registry) to make it discoverable to the MCP ecosystem.\r\n\r\nTo publish your server, follow the [quickstart guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx). You can browse published servers at [https://registry.modelcontextprotocol.io/](https://registry.modelcontextprotocol.io/).\r\n\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: **filesystem**\r\n- Changes to: **Core path handling utilities, validation logic, and initialization**\r\n  - `index.ts`: UTF-8 encoding initialization\r\n  - `path-utils.ts`: Unicode NFC normalization\r\n  - `lib.ts`: Enhanced symlink resolution and error handling\r\n  - `roots-utils.ts`: Root URI parsing improvements\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\n\r\n### Problem\r\nUsers with non-ASCII characters in their file paths (common in German, French, Spanish, and many other languages) experienced complete filesystem access failures. Specifically:\r\n\r\n1. **Windows users**: Umlauts displayed as `?` due to STDIO encoding mismatch\r\n2. **macOS/Linux users**: Path validation failed because macOS stores filenames in NFD (decomposed Unicode: `ü` = `u` + combining diaeresis) while the server compared against NFC (composed: `ü` = single character)\r\n3. **All platforms**: Symlinks pointing to or containing umlauts failed due to `fs.realpath()` returning inconsistent Unicode forms\r\n\r\n### Real-world Impact\r\nThis made the filesystem server completely unusable for:\r\n- Users with non-English names in their home directory path\r\n- Projects with internationalized directory names\r\n- Any workflow involving symbolic links to such paths\r\n\r\n### Example Failure\r\n```\r\nUser creates: /Users/müller/Projekte\r\nmacOS stores:  /Users/mu\\u0308ller/Projekte (NFD)\r\nServer checks: /Users/müller/Projekte (NFC)\r\nResult: \"Access denied\" - string comparison fails\r\n```\r\n\r\nRelated to issue #2098 where Windows users reported umlauts converting to `?`.\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\n\r\nTested extensively with **Claude Desktop** on **macOS** with the following scenarios:\r\n\r\n### Test 1: Directory with umlauts\r\n- Created `/tmp/test-bücher/übung.txt`\r\n-  `list_directory` correctly shows `übung.txt`\r\n-  `read_file` correctly reads content with umlauts\r\n\r\n### Test 2: Symlink with umlaut in name\r\n- Created symlink: `verknüpfung → /target`\r\n-  Successfully write files through symlink\r\n-  Files appear correctly in target directory\r\n\r\n### Test 3: Symlink to directory with umlauts\r\n- Created symlink: `link → /übungen`\r\n-  `list_directory` through symlink works\r\n-  `read_file` and `write_file` work through symlink\r\n\r\n### Test 4: Create file with umlaut in name\r\n- Created `neue-übung.txt` with content containing `ÄÖÜ äöü ß`\r\n-  File created successfully\r\n-  Content preserved correctly\r\n\r\nAll 14 MCP filesystem tools (read, write, list, create, move, search, etc.) now work correctly with umlauts.\r\n\r\n**Testing environment:**\r\n- macOS Sonoma\r\n- Claude Desktop (latest version)\r\n- Node.js v18+\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\n**No breaking changes.** This is a pure bug fix that:\r\n- Maintains backward compatibility with ASCII-only paths\r\n- Requires no configuration changes\r\n- Requires no API changes\r\n- Does not change any existing behavior for paths without umlauts\r\n\r\nUsers can simply update to the new version without any migration steps.\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follow MCP security best practices\r\n- [ ] I have updated the server's README accordingly *(README does not require changes - this is a transparent bug fix)*\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [ ] New and existing tests pass locally *(No existing tests for this functionality; can add unit tests if requested)*\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options *(No new env vars or config options added)*\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n\r\n### Technical Implementation Details\r\n\r\n**Why NFC instead of NFD?**\r\n- NFC (Canonical Composition) is more compact and widely used\r\n- Windows and Linux prefer NFC\r\n- Most databases and APIs expect NFC\r\n- macOS handles both forms transparently\r\n\r\n**Why re-normalize after `fs.realpath()`?**\r\n- `fs.realpath()` resolves symlinks and returns the actual filesystem path\r\n- The filesystem may store paths in a different Unicode form than we normalized earlier\r\n- Critical for symlinks pointing to directories with umlauts\r\n\r\n**Error Handling Improvements:**\r\n- Added detection for `EILSEQ` (illegal byte sequence) and `EINVAL` (invalid argument) error codes\r\n- These indicate encoding issues and now provide helpful error messages\r\n- Helps users identify and report encoding-related problems\r\n\r\n**Performance Impact:**\r\n- `String.normalize('NFC')` adds ~0.01ms per path operation\r\n- Negligible compared to actual filesystem I/O (typically 1-10ms)\r\n- No measurable impact on real-world usage\r\n\r\n**Broader Language Support:**\r\nThis fix benefits all languages using diacritical marks:\r\n- German: ä, ö, ü, ß\r\n- French: é, è, ê, à, ç\r\n- Spanish: ñ, á, í, ó, ú\r\n- Nordic: å, ä, ö, æ, ø\r\n- Eastern European: ł, ż, ś, ć, č, š, ž\r\n- And many more\r\n\r\n### Files Modified\r\n- `src/filesystem/index.ts` (9 lines added - UTF-8 init)\r\n- `src/filesystem/path-utils.ts` (9 lines added - NFC normalization)\r\n- `src/filesystem/lib.ts` (10 lines modified - enhanced error handling)\r\n- `src/filesystem/roots-utils.ts` (8 lines modified - encoding fixes)\r\n\r\nTotal: ~36 lines changed across 4 files - a minimal, focused fix.",
      "created_at": "2026-01-21T15:51:41Z",
      "updated_at": "2026-01-23T10:38:35Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "kernhuber:fix/filesystem-umlaut-symlink-support",
        "ref": "fix/filesystem-umlaut-symlink-support",
        "sha": "2d14766acc814a2a146c53b1cf0d0eefa40b3dc7",
        "user": {
          "login": "kernhuber",
          "id": 90188651,
          "node_id": "MDQ6VXNlcjkwMTg4NjUx",
          "avatar_url": "https://avatars.githubusercontent.com/u/90188651?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/kernhuber",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1138321196,
          "node_id": "R_kgDOQ9lnLA",
          "name": "servers",
          "full_name": "kernhuber/servers",
          "private": false,
          "owner": {
            "login": "kernhuber",
            "id": 90188651,
            "node_id": "MDQ6VXNlcjkwMTg4NjUx",
            "avatar_url": "https://avatars.githubusercontent.com/u/90188651?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/kernhuber",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/kernhuber/servers",
          "created_at": "2026-01-20T14:23:06Z",
          "updated_at": "2026-01-20T14:23:06Z",
          "pushed_at": "2026-01-23T10:38:34Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27930,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "eedb060099be188be7b26d2f37ab898c0b25dba0",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3238"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3238"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3238"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3238/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3238/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3238/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/2d14766acc814a2a146c53b1cf0d0eefa40b3dc7"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        2
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3235",
      "id": 3193070632,
      "node_id": "PR_kwDONRaG_86-UmQo",
      "number": 3235,
      "state": "open",
      "locked": false,
      "title": "Add pdf2md-ai: AI-powered PDF to Markdown converter",
      "user": {
        "login": "MANUJ243",
        "id": 35228399,
        "node_id": "MDQ6VXNlcjM1MjI4Mzk5",
        "avatar_url": "https://avatars.githubusercontent.com/u/35228399?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/MANUJ243",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\r\n\r\nThis PR adds pdf2md-ai, an MCP server that converts PDF files to Markdown using advanced AI (Gemini).\r\n\r\n## Server Details\r\n\r\n- **Name**: pdf2md-ai\r\n- **Package**: https://www.npmjs.com/package/pdf2md-ai\r\n- **Version**: 1.0.0\r\n- **Transport**: stdio (runs locally on user's machine)\r\n- **Dependencies**: Node.js 18+\r\n- **Distribution**: NPM package\r\n\r\n## Features\r\n\r\n- AI-powered content extraction using Gemini\r\n- Preserves document structure, tables, and formatting\r\n- Credit-based SaaS model with free tier\r\n- Fast processing with 5-minute timeout protection\r\n- Multi-language support\r\n\r\n## Testing\r\n\r\nThe server has been tested successfully with:\r\n- ✅ Claude Desktop (Windows & macOS config documented)\r\n- ✅ VS Code with GitHub Copilot\r\n- ✅ Various PDF types (invoices, contracts, reports, technical documents)\r\n\r\n## User Experience\r\n\r\nUsers install via NPX (no manual installation needed):\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"pdf2md-ai\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"pdf2md-ai\"],\r\n      \"env\": {\r\n        \"PDF_TO_MARKDOWN_API_KEY\": \"their-key\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nLinks\r\nNPM Package: [https://www.npmjs.com/package/pdf2md-ai](vscode-file://vscode-app/c:/Program%20Files/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-browser/workbench/workbench.html)\r\nAPI Service: [https://pdf-to-markdown-pro.onrender.com](vscode-file://vscode-app/c:/Program%20Files/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-browser/workbench/workbench.html)\r\nServer Documentation: Included in [README.md](vscode-file://vscode-app/c:/Program%20Files/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-browser/workbench/workbench.html)\r\nChecklist\r\n [README.md](vscode-file://vscode-app/c:/Program%20Files/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-browser/workbench/workbench.html) includes clear installation instructions\r\n [README.md](vscode-file://vscode-app/c:/Program%20Files/Microsoft%20VS%20Code/resources/app/out/vs/code/electron-browser/workbench/workbench.html) includes usage examples with expected output\r\n Server is published and working on NPM\r\n Server works with standard MCP clients (Claude Desktop, Cursor)\r\n Documentation explains how to obtain API key\r\n License is specified (MIT)\r\n Use cases are clearly documented",
      "created_at": "2026-01-20T22:36:28Z",
      "updated_at": "2026-01-21T07:11:25Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "012adfbd22a21347840fa744c14d081413086bc7",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "MANUJ243:add-pdf2md-ai-server",
        "ref": "add-pdf2md-ai-server",
        "sha": "ca3a7fc4905478cacfe6a9545b95dec95ec8df59",
        "user": {
          "login": "MANUJ243",
          "id": 35228399,
          "node_id": "MDQ6VXNlcjM1MjI4Mzk5",
          "avatar_url": "https://avatars.githubusercontent.com/u/35228399?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/MANUJ243",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1138611484,
          "node_id": "R_kgDOQ93VHA",
          "name": "servers",
          "full_name": "MANUJ243/servers",
          "private": false,
          "owner": {
            "login": "MANUJ243",
            "id": 35228399,
            "node_id": "MDQ6VXNlcjM1MjI4Mzk5",
            "avatar_url": "https://avatars.githubusercontent.com/u/35228399?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/MANUJ243",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/MANUJ243/servers",
          "created_at": "2026-01-20T22:29:57Z",
          "updated_at": "2026-01-20T22:29:57Z",
          "pushed_at": "2026-01-20T23:01:31Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27859,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "3fd7fb618ad92e686bec5c4a86c203b0abc0a253",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3235"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3235"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3235"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3235/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3235/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3235/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/ca3a7fc4905478cacfe6a9545b95dec95ec8df59"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3231",
      "id": 3187747075,
      "node_id": "PR_kwDONRaG_86-ASkD",
      "number": 3231,
      "state": "open",
      "locked": false,
      "title": "fix(filesystem): handle negative values in formatSize()",
      "user": {
        "login": "nulone",
        "id": 115600674,
        "node_id": "U_kgDOBuPtIg",
        "avatar_url": "https://avatars.githubusercontent.com/u/115600674?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/nulone",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\n\r\n`formatSize()` returned \"NaN B\" for negative byte values. Now returns \"0 B\" since file sizes cannot be negative.\r\n\r\n> **Note:** Re-submission of #3197 (accidentally closed when I deleted my fork)\r\n\r\n## Server Details\r\n\r\n- Server: filesystem\r\n- Changes to: lib.ts, lib.test.ts\r\n\r\n## Motivation and Context\r\n\r\nInvalid input should not produce \"NaN B\" in UI. File sizes cannot be negative, so returning \"0 B\" is a safe default.\r\n\r\n## How Has This Been Tested?\r\n\r\n- Build passes\r\n- Updated existing test to verify new behavior\r\n\r\n## Breaking Changes\r\n\r\nNone.\r\n\r\n## Types of changes\r\n\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [ ] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options",
      "created_at": "2026-01-19T13:03:59Z",
      "updated_at": "2026-01-19T13:04:12Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "764b50c590fbef91b93fec2a305c19160cb38287",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "nulone:fix/filesystem-format-size-negative",
        "ref": "fix/filesystem-format-size-negative",
        "sha": "b5d024450f1b5247cc79e8d3980c92a1194724a3",
        "user": {
          "login": "nulone",
          "id": 115600674,
          "node_id": "U_kgDOBuPtIg",
          "avatar_url": "https://avatars.githubusercontent.com/u/115600674?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/nulone",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1137488026,
          "node_id": "R_kgDOQ8ywmg",
          "name": "servers",
          "full_name": "nulone/servers",
          "private": false,
          "owner": {
            "login": "nulone",
            "id": 115600674,
            "node_id": "U_kgDOBuPtIg",
            "avatar_url": "https://avatars.githubusercontent.com/u/115600674?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/nulone",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/nulone/servers",
          "created_at": "2026-01-19T12:39:44Z",
          "updated_at": "2026-01-19T12:39:44Z",
          "pushed_at": "2026-01-19T13:04:10Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27792,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "55a3056a048edca1159f32b41057c3df9618aeba",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3231"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3231"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3231"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3231/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3231/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3231/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/b5d024450f1b5247cc79e8d3980c92a1194724a3"
        }
      },
      "author_association": "CONTRIBUTOR",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3230",
      "id": 3187728928,
      "node_id": "PR_kwDONRaG_86-AOIg",
      "number": 3230,
      "state": "open",
      "locked": false,
      "title": "fix(filesystem): mark move_file as destructive operation",
      "user": {
        "login": "nulone",
        "id": 115600674,
        "node_id": "U_kgDOBuPtIg",
        "avatar_url": "https://avatars.githubusercontent.com/u/115600674?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/nulone",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\n\r\n`move_file` deletes the source file, which is a destructive operation. Updated annotations and README to reflect this.\r\n\r\n> **Note:** Re-submission of #3196 (accidentally closed when I deleted my fork)\r\n\r\n## Server Details\r\n\r\n- Server: filesystem\r\n- Changes to: tool annotations, README\r\n\r\n## Motivation and Context\r\n\r\nMCP clients use `destructiveHint` to warn users. `move_file` deletes source file — should be marked destructive. For comparison: `write_file` has `destructiveHint: true`.\r\n\r\n## How Has This Been Tested?\r\n\r\n- Build passes\r\n- 134 tests pass\r\n\r\n## Breaking Changes\r\n\r\nNone.\r\n\r\n## Types of changes\r\n\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [x] Documentation update\r\n\r\n## Checklist\r\n\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [ ] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options",
      "created_at": "2026-01-19T12:58:12Z",
      "updated_at": "2026-02-11T02:38:44Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "579ba620653484cfec6cfe9f2edabc0d5f3c8ede",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "nulone:fix/filesystem-move-file-destructive-hint",
        "ref": "fix/filesystem-move-file-destructive-hint",
        "sha": "86fd903d5ff7b2c7bd8a268675948cea91d1895d",
        "user": {
          "login": "nulone",
          "id": 115600674,
          "node_id": "U_kgDOBuPtIg",
          "avatar_url": "https://avatars.githubusercontent.com/u/115600674?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/nulone",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1137488026,
          "node_id": "R_kgDOQ8ywmg",
          "name": "servers",
          "full_name": "nulone/servers",
          "private": false,
          "owner": {
            "login": "nulone",
            "id": 115600674,
            "node_id": "U_kgDOBuPtIg",
            "avatar_url": "https://avatars.githubusercontent.com/u/115600674?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/nulone",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/nulone/servers",
          "created_at": "2026-01-19T12:39:44Z",
          "updated_at": "2026-01-19T12:39:44Z",
          "pushed_at": "2026-01-19T13:04:10Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27792,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "55a3056a048edca1159f32b41057c3df9618aeba",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3230"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3230"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3230"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3230/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3230/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3230/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/86fd903d5ff7b2c7bd8a268675948cea91d1895d"
        }
      },
      "author_association": "CONTRIBUTOR",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3225",
      "id": 3184438683,
      "node_id": "PR_kwDONRaG_869zq2b",
      "number": 3225,
      "state": "open",
      "locked": false,
      "title": "Add MCP Discovery Server - Semantic search for MCP servers",
      "user": {
        "login": "yksanjo",
        "id": 25552068,
        "node_id": "MDQ6VXNlcjI1NTUyMDY4",
        "avatar_url": "https://avatars.githubusercontent.com/u/25552068?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/yksanjo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\nThis PR adds **MCP Discovery Server** - a discovery and routing layer that enables AI agents to find the right MCP server for any task.\n\n## Why this matters\n\n- Agents are currently limited to pre-configured MCP servers\n- No way to dynamically discover new capabilities\n- No performance/reliability data available\n\n## What MCP Discovery provides\n\n- **Semantic search** using embeddings (24 servers indexed)\n- **Performance metrics** (latency, uptime)\n- **Side-by-side server comparison**\n- **Free hosted API** + self-hosted option\n\n## Tools\n\n| Tool | Description |\n|------|-------------|\n| `discover_mcp_server` | Find servers matching natural language needs |\n| `get_server_metrics` | Get performance data for a server |\n| `compare_servers` | Compare multiple servers side-by-side |\n\n## Example\n\n```\nAgent: \"I need a database with authentication\"\n→ Returns: Supabase MCP (94% confidence) + install command + uptime data\n```\n\n## Links\n\n- **Repo**: https://github.com/yksanjo/mcp-discovery\n- **Live API**: https://mcp-discovery-production.up.railway.app\n- **npm**: https://www.npmjs.com/package/mcp-discovery-api\n\nHappy to address any feedback!",
      "created_at": "2026-01-17T19:28:55Z",
      "updated_at": "2026-01-17T19:28:55Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "12f208604af2325fb03d05bea16c7e128de4968a",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "yksanjo:add-mcp-discovery",
        "ref": "add-mcp-discovery",
        "sha": "cc490a0054fa90c949bf577b99c96addb16f567d",
        "user": {
          "login": "yksanjo",
          "id": 25552068,
          "node_id": "MDQ6VXNlcjI1NTUyMDY4",
          "avatar_url": "https://avatars.githubusercontent.com/u/25552068?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/yksanjo",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1136488081,
          "node_id": "R_kgDOQ71ukQ",
          "name": "servers",
          "full_name": "yksanjo/servers",
          "private": false,
          "owner": {
            "login": "yksanjo",
            "id": 25552068,
            "node_id": "MDQ6VXNlcjI1NTUyMDY4",
            "avatar_url": "https://avatars.githubusercontent.com/u/25552068?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/yksanjo",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/yksanjo/servers",
          "created_at": "2026-01-17T19:27:44Z",
          "updated_at": "2026-01-17T19:27:44Z",
          "pushed_at": "2026-01-17T19:28:38Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28433,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "55a3056a048edca1159f32b41057c3df9618aeba",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3225"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3225"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3225"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3225/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3225/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3225/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/cc490a0054fa90c949bf577b99c96addb16f567d"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3218",
      "id": 3182748329,
      "node_id": "PR_kwDONRaG_869tOKp",
      "number": 3218,
      "state": "open",
      "locked": false,
      "title": "refactor: update file write operations to use copy instead of rename …",
      "user": {
        "login": "mahdirajaee",
        "id": 117358484,
        "node_id": "U_kgDOBv6_lA",
        "avatar_url": "https://avatars.githubusercontent.com/u/117358484?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/mahdirajaee",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "…for improved safety\r\n\r\n<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\n\r\n## Publishing Your Server\r\n\r\n**Note: We are no longer accepting PRs to add servers to the README.** Instead, please publish your server to the [MCP Server Registry](https://github.com/modelcontextprotocol/registry) to make it discoverable to the MCP ecosystem.\r\n\r\nTo publish your server, follow the [quickstart guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx). You can browse published servers at [https://registry.modelcontextprotocol.io/](https://registry.modelcontextprotocol.io/).\r\n\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: <!-- e.g., filesystem, github -->\r\n- Changes to: <!-- e.g., tools, resources, prompts -->\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [ ] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [ ] My changes follows MCP security best practices\r\n- [ ] I have updated the server's README accordingly\r\n- [ ] I have tested this with an LLM client\r\n- [ ] My code follows the repository's style guidelines\r\n- [ ] New and existing tests pass locally\r\n- [ ] I have added appropriate error handling\r\n- [ ] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2026-01-16T21:22:55Z",
      "updated_at": "2026-01-16T21:22:55Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "bf6d29eb236e1527818119a6250d7ae487e31a18",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "mahdirajaee:fix/issue-3199-windows-eperm",
        "ref": "fix/issue-3199-windows-eperm",
        "sha": "75d609fea44b828448eeaa16273f7ff373803b54",
        "user": {
          "login": "mahdirajaee",
          "id": 117358484,
          "node_id": "U_kgDOBv6_lA",
          "avatar_url": "https://avatars.githubusercontent.com/u/117358484?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/mahdirajaee",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1135965643,
          "node_id": "R_kgDOQ7V1yw",
          "name": "servers",
          "full_name": "mahdirajaee/servers",
          "private": false,
          "owner": {
            "login": "mahdirajaee",
            "id": 117358484,
            "node_id": "U_kgDOBv6_lA",
            "avatar_url": "https://avatars.githubusercontent.com/u/117358484?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/mahdirajaee",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/mahdirajaee/servers",
          "created_at": "2026-01-16T21:09:06Z",
          "updated_at": "2026-01-16T21:09:06Z",
          "pushed_at": "2026-01-16T21:21:53Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28250,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "72e11113edff5919e74de1d69b71203991fe2f05",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3218"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3218"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3218"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3218/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3218/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3218/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/75d609fea44b828448eeaa16273f7ff373803b54"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3205",
      "id": 3165882488,
      "node_id": "PR_kwDONRaG_868s4h4",
      "number": 3205,
      "state": "open",
      "locked": false,
      "title": "Fix windows absolute path parsing bug",
      "user": {
        "login": "Shellishack",
        "id": 40737228,
        "node_id": "MDQ6VXNlcjQwNzM3MjI4",
        "avatar_url": "https://avatars.githubusercontent.com/u/40737228?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Shellishack",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\nFix Windows absolute path parsing bug described in https://github.com/modelcontextprotocol/servers/issues/3174\r\n\r\n## Publishing Your Server\r\n\r\n**Note: We are no longer accepting PRs to add servers to the README.** Instead, please publish your server to the [MCP Server Registry](https://github.com/modelcontextprotocol/registry) to make it discoverable to the MCP ecosystem.\r\n\r\nTo publish your server, follow the [quickstart guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx). You can browse published servers at [https://registry.modelcontextprotocol.io/](https://registry.modelcontextprotocol.io/).\r\n\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: filesystem\r\n- Changes to: roots\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\nFix Windows path parsing bug where any path isn't recognized as valid path except ones starting with `./`\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\nManully tested on Windows and Linux.\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\nNo\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [ ] I have updated the server's README accordingly\r\n- [ ] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [ ] I have added appropriate error handling\r\n- [ ] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2026-01-12T13:30:11Z",
      "updated_at": "2026-01-12T13:30:11Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "2e8792870cf5cc59d003f7495bb850ada7d1951d",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Shellishack:main",
        "ref": "main",
        "sha": "99d0471c0c487e70536811c3e5c5238227b403d3",
        "user": {
          "login": "Shellishack",
          "id": 40737228,
          "node_id": "MDQ6VXNlcjQwNzM3MjI4",
          "avatar_url": "https://avatars.githubusercontent.com/u/40737228?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Shellishack",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1132762943,
          "node_id": "R_kgDOQ4SXPw",
          "name": "mcp-servers",
          "full_name": "Shellishack/mcp-servers",
          "private": false,
          "owner": {
            "login": "Shellishack",
            "id": 40737228,
            "node_id": "MDQ6VXNlcjQwNzM3MjI4",
            "avatar_url": "https://avatars.githubusercontent.com/u/40737228?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Shellishack",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/Shellishack/mcp-servers",
          "created_at": "2026-01-12T12:19:40Z",
          "updated_at": "2026-01-12T13:16:10Z",
          "pushed_at": "2026-01-12T13:15:57Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27771,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "861c11b786b3efbc87eb2e878a4039d33846a031",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3205"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3205"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3205"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3205/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3205/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3205/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/99d0471c0c487e70536811c3e5c5238227b403d3"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3202",
      "id": 3163291616,
      "node_id": "PR_kwDONRaG_868i__g",
      "number": 3202,
      "state": "open",
      "locked": false,
      "title": "feat(everything): add resource collection example",
      "user": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "This adds a resource collection example demonstrating the pattern where a single resources/read request returns multiple ResourceContents with different URIs. This is useful for modeling collections, indexes, or composite resources.\r\n\r\nThe example includes:\r\n- A summer specials collection that returns all items\r\n- Category-filtered collections for accessories, footwear, and skincare\r\n- Individual item resources for direct access\r\n\r\nBased on the gist provided by @olaservo:\r\nhttps://gist.github.com/olaservo/585b1ad042723a824b6a0e0e02ae60a8\r\n\r\nFixes #3130\r\n\r\nGenerated with [Claude Code](https://claude.ai/code)) | [Branch](https://github.com/modelcontextprotocol/servers/tree/claude/issue-3130-20260111-1423) | [View job run](https://github.com/modelcontextprotocol/servers/actions/runs/20896646917",
      "created_at": "2026-01-11T14:29:28Z",
      "updated_at": "2026-01-26T18:32:42Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "6a664a721a3b2b6b417386b7355fe3d72cdf379f",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 8359492806,
          "node_id": "LA_kwDONRaG_88AAAAB8kO8xg",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-everything",
          "name": "server-everything",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Everything MCP server - src/everything"
        }
      },
      "milestone": null,
      "draft": true,
      "head": {
        "label": "modelcontextprotocol:claude/issue-3130-20260111-1423",
        "ref": "claude/issue-3130-20260111-1423",
        "sha": "63b64a45790d75adead459405fc92d6bafd9485c",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "549dd025e25fc4bf9ddd07792662a0c64383281c",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3202"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3202"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3202"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3202/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3202/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3202/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/63b64a45790d75adead459405fc92d6bafd9485c"
        }
      },
      "author_association": "MEMBER",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        3130
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3187",
      "id": 3149377533,
      "node_id": "PR_kwDONRaG_867t6_9",
      "number": 3187,
      "state": "open",
      "locked": false,
      "title": "fix(filesystem): gracefully handle unavailable directories",
      "user": {
        "login": "eran3d",
        "id": 562488,
        "node_id": "MDQ6VXNlcjU2MjQ4OA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/562488?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/eran3d",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\nInstead of crashing when a configured directory is unavailable (e.g., unmounted external drive, disconnected network share), the server now skips unavailable directories with a warning and continues operating with the remaining available directories.\n\n## Problem\n\nCurrently, if any directory in `allowed_directories` is unavailable at startup, the entire server crashes with `process.exit(1)`. This makes ALL filesystem access unavailable, even for paths that are accessible.\n\nThis is particularly problematic for:\n- Laptop users with external drives that aren't always connected\n- Users with network shares that may be temporarily unavailable\n- Anyone who wants to configure multiple directories where some might not always be mounted\n\n## Solution\n\nThe server now:\n- Validates each directory individually\n- Skips unavailable directories with a warning log message\n- Continues operating with the remaining available directories\n- Only exits if ALL specified directories are unavailable\n\n### Example log output\n\n```\nWarning: Skipping unavailable directory /Volumes/External-Drive: ENOENT: no such file or directory\nSkipped 1 unavailable directory: /Volumes/External-Drive\nServer starting with 2 available directories: /Users/username/Documents, /Users/username/Desktop\n```\n\n## Testing\n\nTested locally with a mix of available and unavailable directories. The server now starts successfully and operates on the available directories while logging warnings about the unavailable ones.\n\nFixes #2815",
      "created_at": "2026-01-06T12:57:53Z",
      "updated_at": "2026-01-06T12:57:53Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "eran3d:fix/graceful-unavailable-directories",
        "ref": "fix/graceful-unavailable-directories",
        "sha": "1a2625555311b7b416dd00ee6f92ce2e5e01f992",
        "user": {
          "login": "eran3d",
          "id": 562488,
          "node_id": "MDQ6VXNlcjU2MjQ4OA==",
          "avatar_url": "https://avatars.githubusercontent.com/u/562488?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/eran3d",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1128874606,
          "node_id": "R_kgDOQ0lCbg",
          "name": "servers",
          "full_name": "eran3d/servers",
          "private": false,
          "owner": {
            "login": "eran3d",
            "id": 562488,
            "node_id": "MDQ6VXNlcjU2MjQ4OA==",
            "avatar_url": "https://avatars.githubusercontent.com/u/562488?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/eran3d",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/eran3d/servers",
          "created_at": "2026-01-06T09:21:22Z",
          "updated_at": "2026-01-06T09:21:22Z",
          "pushed_at": "2026-01-06T09:23:36Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28208,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "425869346f5e092e1701dbf1a67434605f8d8847",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3187"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3187"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3187"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3187/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3187/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3187/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/1a2625555311b7b416dd00ee6f92ce2e5e01f992"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        2,
        2815
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3181",
      "id": 3146463185,
      "node_id": "PR_kwDONRaG_867izfR",
      "number": 3181,
      "state": "open",
      "locked": false,
      "title": "Feature/distill token optimization",
      "user": {
        "login": "Tomo1912",
        "id": 159284798,
        "node_id": "U_kgDOCX5-Pg",
        "avatar_url": "https://avatars.githubusercontent.com/u/159284798?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Tomo1912",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\n\r\nAdd optional `distill` parameter to the fetch server that aggressively cleans HTML content to minimize token usage. When enabled, removes scripts, styles, navigation, headers, footers, ads, and other non-essential elements before conversion to markdown. Achieves **72.8% average token reduction** across real-world tests.\r\n\r\n## Server Details\r\n- Server: fetch\r\n- Changes to: tools (added `distill` parameter to `fetch` tool)\r\n\r\n## Motivation and Context\r\n\r\nLLM token costs are a significant operational expense. Current `web-fetch` returns full HTML including navigation menus, ads, scripts, and UI clutter - wasting tokens on non-content elements.\r\n\r\n**Test Results:**\r\n| Website | Standard Tokens | Distilled Tokens | Reduction |\r\n|---------|-----------------|------------------|-----------|\r\n| MCP Docs | 2,154 | 13 | 99.4% |\r\n| TechCrunch | 506 | 263 | 48.0% |\r\n| Python Docs | 662 | 629 | 5.0% |\r\n| **Average** | 1,107 | 302 | **72.8%** |\r\n\r\n## How Has This Been Tested?\r\n\r\n- Tested with Claude Desktop as MCP client\r\n- Tested against multiple real-world websites (documentation sites, news sites, technical docs)\r\n- Verified backward compatibility - existing calls without `distill` parameter work unchanged\r\n\r\n## Breaking Changes\r\n\r\nNone. The `distill` parameter defaults to `False`, maintaining full backward compatibility.\r\n\r\n## Types of changes\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n\r\nNo new dependencies required - uses existing `readabilipy` for content extraction.\r\n",
      "created_at": "2026-01-05T14:27:25Z",
      "updated_at": "2026-02-12T11:52:19Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "fe8cc1d292bb61735fc915a64246ca60c8f918cc",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Tomo1912:feature/distill-token-optimization",
        "ref": "feature/distill-token-optimization",
        "sha": "f10db76995177e7536e56a4348ba4fd64f54b5f0",
        "user": {
          "login": "Tomo1912",
          "id": 159284798,
          "node_id": "U_kgDOCX5-Pg",
          "avatar_url": "https://avatars.githubusercontent.com/u/159284798?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Tomo1912",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1128189351,
          "node_id": "R_kgDOQz7Npw",
          "name": "servers",
          "full_name": "Tomo1912/servers",
          "private": false,
          "owner": {
            "login": "Tomo1912",
            "id": 159284798,
            "node_id": "U_kgDOCX5-Pg",
            "avatar_url": "https://avatars.githubusercontent.com/u/159284798?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Tomo1912",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/Tomo1912/servers",
          "created_at": "2026-01-05T09:15:29Z",
          "updated_at": "2026-01-05T09:15:29Z",
          "pushed_at": "2026-02-12T17:43:10Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28163,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3181"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3181"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3181"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3181/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3181/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3181/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/f10db76995177e7536e56a4348ba4fd64f54b5f0"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3180",
      "id": 3145709098,
      "node_id": "PR_kwDONRaG_867f7Yq",
      "number": 3180,
      "state": "open",
      "locked": false,
      "title": "feat(fetch): add SSRF protection and comprehensive security test suite",
      "user": {
        "login": "Tomo1912",
        "id": 159284798,
        "node_id": "U_kgDOCX5-Pg",
        "avatar_url": "https://avatars.githubusercontent.com/u/159284798?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Tomo1912",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\r\nThis PR adds Server-Side Request Forgery (SSRF) protection and a comprehensive security test suite to the fetch MCP server.\r\n\r\n## Security Features Added\r\n\r\n### SSRF Protection\r\n- URL scheme validation (only http/https allowed)\r\n- Private IP range blocking (10.x, 172.16-31.x, 192.168.x, 127.x, etc.)\r\n- IPv6 private address blocking (::1, fe80::, fc00::, etc.)\r\n- Dangerous hostname blocking (localhost, metadata services, etc.)\r\n- DNS resolution validation to prevent DNS rebinding\r\n- Configurable via MCP_FETCH_ALLOW_PRIVATE_IPS env var\r\n- Whitelist support via MCP_FETCH_ALLOWED_PRIVATE_HOSTS\r\n\r\n### SSL Configuration\r\n- Configurable SSL verification via MCP_FETCH_SSL_VERIFY env var\r\n- Comprehensive SSL error handling with helpful messages\r\n\r\n### Test Suite (89 tests)\r\n- SSRF protection tests\r\n- Private IP blocking tests\r\n- Input validation tests\r\n- URL scheme validation tests\r\n- Integration tests\r\n- Edge case tests\r\n\r\n## Configuration\r\n\r\n~~~\r\n# Disable SSL verification for self-signed certs\r\nexport MCP_FETCH_SSL_VERIFY=false\r\n\r\n# Allow private IPs (use with caution)\r\nexport MCP_FETCH_ALLOW_PRIVATE_IPS=true\r\n\r\n# Whitelist specific internal hosts\r\nexport MCP_FETCH_ALLOWED_PRIVATE_HOSTS=internal.company.com,api.local\r\n~~~\r\n\r\n## Server Details\r\n\r\n- Server: fetch\r\n- Changes to: Security (SSRF protection, SSL config), tests\r\n\r\n## Motivation and Context\r\n\r\nThe fetch server can be exploited for SSRF attacks, allowing malicious actors to access internal services (cloud metadata endpoints, internal APIs, etc.). This PR adds comprehensive protection while maintaining flexibility for legitimate internal use cases through configuration options.\r\n\r\n## How Has This Been Tested?\r\n\r\n- 89 security tests pass locally\r\n- Tested with pyright (0 errors)\r\n- CI pipeline passes\r\n\r\n## Breaking Changes\r\n\r\nNone. All protections are backward compatible. Private IPs can be enabled via env var if needed.\r\n\r\n## Types of changes\r\n\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n\r\nThis PR builds on #3179  which adds SSL verification configuration.",
      "created_at": "2026-01-05T09:41:02Z",
      "updated_at": "2026-02-12T17:46:43Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "f11cb5daa0938a0a39d03b10601dcfee8b2352c2",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Tomo1912:feat/security-hardening",
        "ref": "feat/security-hardening",
        "sha": "217addd80595d16fd1862d48a47f68d92530662e",
        "user": {
          "login": "Tomo1912",
          "id": 159284798,
          "node_id": "U_kgDOCX5-Pg",
          "avatar_url": "https://avatars.githubusercontent.com/u/159284798?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Tomo1912",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1128189351,
          "node_id": "R_kgDOQz7Npw",
          "name": "servers",
          "full_name": "Tomo1912/servers",
          "private": false,
          "owner": {
            "login": "Tomo1912",
            "id": 159284798,
            "node_id": "U_kgDOCX5-Pg",
            "avatar_url": "https://avatars.githubusercontent.com/u/159284798?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Tomo1912",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/Tomo1912/servers",
          "created_at": "2026-01-05T09:15:29Z",
          "updated_at": "2026-01-05T09:15:29Z",
          "pushed_at": "2026-02-12T17:43:10Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28163,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3180"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3180"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3180"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3180/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3180/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3180/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/217addd80595d16fd1862d48a47f68d92530662e"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3179",
      "id": 3145668768,
      "node_id": "PR_kwDONRaG_867fxig",
      "number": 3179,
      "state": "open",
      "locked": false,
      "title": "fix(fetch): add configurable SSL certificate verification",
      "user": {
        "login": "Tomo1912",
        "id": 159284798,
        "node_id": "U_kgDOCX5-Pg",
        "avatar_url": "https://avatars.githubusercontent.com/u/159284798?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Tomo1912",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Resolves #508\r\n\r\n> This replaces the earlier closed PR #3171, which has been split into two focused PRs\r\n\r\n## Description\r\n\r\nAdded `MCP_FETCH_SSL_VERIFY` environment variable to control SSL certificate verification. This allows the fetch server to work with internal servers that use self-signed certificates.\r\n\r\n## Changes\r\n\r\n- Added `SSL_VERIFY` configuration via `MCP_FETCH_SSL_VERIFY` env var (default: `true`)\r\n- Added `verify=SSL_VERIFY` to both `AsyncClient` instances  \r\n- Added comprehensive SSL error handling with helpful error messages\r\n- Error messages guide users to set `MCP_FETCH_SSL_VERIFY=false` for self-signed certs\r\n\r\n## Usage\r\n\r\n~~~bash\r\nexport MCP_FETCH_SSL_VERIFY=false\r\n~~~\r\n\r\n> ⚠️ **Security Note:** Disabling SSL verification reduces security. Only use in trusted environments with internal servers that have self-signed certificates.\r\n\r\n## Server Details\r\n\r\n| Field | Value |\r\n|-------|-------|\r\n| Server | `fetch` |\r\n| Changes to | SSL/TLS connection handling |\r\n\r\n## Motivation and Context\r\n\r\nUsers with internal servers using self-signed certificates cannot use the fetch server because SSL verification fails. This change allows users to optionally disable SSL verification while keeping it enabled by default for security.\r\n\r\n## How Has This Been Tested?\r\n\r\n- ✅ Tested with pyright (0 errors)\r\n- ✅ Verified `SSL_VERIFY` env var parsing works correctly\r\n- ✅ Tested error message formatting\r\n\r\n## Breaking Changes\r\n\r\nNone. SSL verification remains enabled by default.\r\n\r\n## Types of changes\r\n\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follow MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n\r\nA follow-up PR with SSRF protection and comprehensive security tests is available at #3180.",
      "created_at": "2026-01-05T09:28:34Z",
      "updated_at": "2026-02-09T20:05:52Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Tomo1912:fix/ssl-verification-508",
        "ref": "fix/ssl-verification-508",
        "sha": "baab76554bd0be3d67600a0877f35694207e023a",
        "user": {
          "login": "Tomo1912",
          "id": 159284798,
          "node_id": "U_kgDOCX5-Pg",
          "avatar_url": "https://avatars.githubusercontent.com/u/159284798?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Tomo1912",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1128189351,
          "node_id": "R_kgDOQz7Npw",
          "name": "servers",
          "full_name": "Tomo1912/servers",
          "private": false,
          "owner": {
            "login": "Tomo1912",
            "id": 159284798,
            "node_id": "U_kgDOCX5-Pg",
            "avatar_url": "https://avatars.githubusercontent.com/u/159284798?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Tomo1912",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/Tomo1912/servers",
          "created_at": "2026-01-05T09:15:29Z",
          "updated_at": "2026-01-05T09:15:29Z",
          "pushed_at": "2026-02-12T17:43:10Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28163,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "70c549be694c1128a29568c53d0fbdfed0e02702",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3179"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3179"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3179"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3179/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3179/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3179/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/baab76554bd0be3d67600a0877f35694207e023a"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        5,
        3,
        508
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3176",
      "id": 3144227431,
      "node_id": "PR_kwDONRaG_867aRpn",
      "number": 3176,
      "state": "open",
      "locked": false,
      "title": "feat: add filesystem copy tool",
      "user": {
        "login": "liam61",
        "id": 38933451,
        "node_id": "MDQ6VXNlcjM4OTMzNDUx",
        "avatar_url": "https://avatars.githubusercontent.com/u/38933451?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/liam61",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\n\r\nHi, inspired by https://github.com/modelcontextprotocol/servers/pull/2012, copy function is great, we may need this tool. So I made this PR, can plz help check when available~\r\ncc @olaservo @domdomegg \r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\ntested locally\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\nno\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2026-01-04T07:59:58Z",
      "updated_at": "2026-01-04T07:59:58Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "359b081607d521fec7c0fe390a8dc1607eac13a9",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "liam61:main",
        "ref": "main",
        "sha": "769400d85f293bccc1bdf3c5049bb0b3a6a37de3",
        "user": {
          "login": "liam61",
          "id": 38933451,
          "node_id": "MDQ6VXNlcjM4OTMzNDUx",
          "avatar_url": "https://avatars.githubusercontent.com/u/38933451?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/liam61",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1127569615,
          "node_id": "R_kgDOQzVYzw",
          "name": "official-mcp-servers",
          "full_name": "liam61/official-mcp-servers",
          "private": false,
          "owner": {
            "login": "liam61",
            "id": 38933451,
            "node_id": "MDQ6VXNlcjM4OTMzNDUx",
            "avatar_url": "https://avatars.githubusercontent.com/u/38933451?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/liam61",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/liam61/official-mcp-servers",
          "created_at": "2026-01-04T06:39:51Z",
          "updated_at": "2026-01-04T07:58:50Z",
          "pushed_at": "2026-01-04T08:11:15Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27470,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "dcb47d2d94a3a33340053d2df550ae68d2795a3f",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3176"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3176"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3176"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3176/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3176/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3176/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/769400d85f293bccc1bdf3c5049bb0b3a6a37de3"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3175",
      "id": 3144002973,
      "node_id": "PR_kwDONRaG_867Za2d",
      "number": 3175,
      "state": "open",
      "locked": false,
      "title": "Register MCP reference servers in the official MCP Registry",
      "user": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\n\r\nThis PR adds infrastructure to automatically register and update 7 MCP reference servers in the official MCP Server Registry. It includes:\r\n\r\n1. **`server.json` files** for all 7 local servers (everything, filesystem, memory, sequentialthinking, fetch, git, time)\r\n2. **Version sync** in `release.py` to keep `server.json` versions aligned with package versions\r\n3. **CI automation** to publish server metadata to the registry after npm/pypi releases\r\n\r\nCloses #3047\r\n\r\n## Server Details\r\n\r\n- **Servers**: everything, filesystem, memory, sequentialthinking, fetch, git, time\r\n- **Changes to**: Build/release infrastructure (no changes to server functionality)\r\n\r\n## Motivation and Context\r\n\r\nThe MCP Server Registry is now the official way to discover MCP servers. This PR registers the reference servers so they appear in the registry and stay updated automatically with each release.\r\n\r\nKey benefits:\r\n- Reference servers become discoverable via the official registry\r\n- Versions stay in sync automatically (no manual publishing needed)\r\n- Uses GitHub OIDC authentication (no secrets required)\r\n\r\n## How Has This Been Tested?\r\n\r\n- `server.json` files validated against the registry schema\r\n- `release.py` changes tested locally to verify version sync logic\r\n- CI workflow syntax validated\r\n\r\nFull end-to-end testing requires merging and triggering a release to verify OIDC authentication with the registry.\r\n\r\n## Breaking Changes\r\n\r\nNone. This is additive infrastructure that doesn't affect existing server functionality or user configurations.\r\n\r\n## Types of changes\r\n\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n\r\n### Files Added\r\n```\r\nsrc/everything/server.json\r\nsrc/filesystem/server.json\r\nsrc/memory/server.json\r\nsrc/sequentialthinking/server.json\r\nsrc/fetch/server.json\r\nsrc/git/server.json\r\nsrc/time/server.json\r\n```\r\n\r\n### Files Modified\r\n```\r\nscripts/release.py          # Added update_server_json() method\r\n.github/workflows/release.yml  # Added publish-registry-npm and publish-registry-pypi jobs\r\n```\r\n\r\n### CI Workflow\r\n\r\n```\r\npublish-npm  →  publish-registry-npm  ─┐\r\n                                       ├→ create-release\r\npublish-pypi →  publish-registry-pypi ─┘\r\n```\r\n\r\n### Out of Scope\r\n\r\nThe docs remote server (`modelcontextprotocol.io/mcp`) is not included in this PR and can be tracked separately here: https://github.com/modelcontextprotocol/modelcontextprotocol/issues/2046\r\n",
      "created_at": "2026-01-04T01:59:14Z",
      "updated_at": "2026-01-04T08:46:27Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "c8ff7cd5d3411cefa493623bebcd531762fce9e2",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": true,
      "head": {
        "label": "olaservo:add-server-json-files",
        "ref": "add-server-json-files",
        "sha": "ac0946f539f77ede5878e1606b83004205c5ca38",
        "user": {
          "login": "olaservo",
          "id": 16480113,
          "node_id": "MDQ6VXNlcjE2NDgwMTEz",
          "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/olaservo",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 932850603,
          "node_id": "R_kgDON5orqw",
          "name": "servers",
          "full_name": "olaservo/servers",
          "private": false,
          "owner": {
            "login": "olaservo",
            "id": 16480113,
            "node_id": "MDQ6VXNlcjE2NDgwMTEz",
            "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/olaservo",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/olaservo/servers",
          "created_at": "2025-02-14T16:28:20Z",
          "updated_at": "2026-01-24T17:22:39Z",
          "pushed_at": "2026-02-13T02:11:23Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28269,
          "stargazers_count": 1,
          "watchers_count": 1,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 1,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "dcb47d2d94a3a33340053d2df550ae68d2795a3f",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3175"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3175"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3175"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3175/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3175/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3175/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/ac0946f539f77ede5878e1606b83004205c5ca38"
        }
      },
      "author_association": "MEMBER",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        3047
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3163",
      "id": 3135771055,
      "node_id": "PR_kwDONRaG_8666BGv",
      "number": 3163,
      "state": "open",
      "locked": false,
      "title": "feat(everything): add trigger-agentic-sampling tool",
      "user": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\n\r\nAdds support for SEP-1577 (Sampling With Tools) to the Everything server by introducing a new `trigger-agentic-sampling` tool that demonstrates the agentic sampling loop pattern.\r\n\r\nThis tool:\r\n- Sends a prompt to the client's LLM with tools available\r\n- Handles `tool_use` responses and executes tools locally\r\n- Loops until a final text response is received or max iterations reached\r\n- Only registers if the client supports `sampling.tools` capability\r\n\r\n## Server Details\r\n\r\n- Server: everything\r\n- Changes to: tools\r\n\r\n## Motivation and Context\r\n\r\nIssue: #3040\r\n\r\nSEP-1577 adds tool calling support to the MCP sampling API, enabling servers to provide tools that the LLM can use during sampling requests. This creates an \"agentic loop\" where:\r\n\r\n1. Server sends `sampling/createMessage` with a `tools` array\r\n2. If the LLM returns `stopReason: \"toolUse\"`, the server executes the tools\r\n3. Server sends tool results back and continues until final response\r\n\r\nThe Everything server is a reference implementation that demonstrates all MCP features, so it should include this capability.\r\n\r\n## How Has This Been Tested?\r\n\r\n- Build passes successfully\r\n- Tool registration is conditional on `sampling.tools` capability check\r\n- Follows the same pattern as existing conditional tools (`trigger-sampling-request`, `trigger-elicitation-request`)\r\n- Tested with custom client using local build of Typescript SDK (see also: https://github.com/modelcontextprotocol/typescript-sdk/issues/1346 )\r\n\r\n(We can wait to merge until I've had a chance to add a screengrab if that's preferred.)\r\n\r\n## Breaking Changes\r\n\r\nNo\r\n\r\n## Types of changes\r\n\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n\r\n### References\r\n- [SEP-1577 Proposal](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1577)\r\n- [Specification changes](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1796)\r\n- [TypeScript SDK changes](https://github.com/modelcontextprotocol/typescript-sdk/pull/1101)\r\n- [Inspector support](https://github.com/modelcontextprotocol/inspector/issues/932)\r\n\r\n### Implementation Notes\r\nThe tool includes simple local implementations of `echo` and `add` tools for demonstration purposes. In a production scenario, tools could likely be reused via:\r\n- Internal `server.server.callTool()` calls\r\n- Connecting to other MCP servers as a client\r\n- Shared business logic functions\r\n\r\nI thought about trying to re-use existing tools already defined in the everything server, but then decided to keep it self-contained instead.",
      "created_at": "2025-12-30T03:59:58Z",
      "updated_at": "2026-02-04T13:58:42Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "23f59e7f2f87a15b81150c5e5fb9b5f447f4a916",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {
        "0": {
          "login": "evalstate",
          "id": 1936278,
          "node_id": "MDQ6VXNlcjE5MzYyNzg=",
          "avatar_url": "https://avatars.githubusercontent.com/u/1936278?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/evalstate",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "1": {
          "login": "cliffhall",
          "id": 871933,
          "node_id": "MDQ6VXNlcjg3MTkzMw==",
          "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/cliffhall",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": true,
      "head": {
        "label": "olaservo:add-sampling-with-tools",
        "ref": "add-sampling-with-tools",
        "sha": "0d676b5e7576f80d2d4d5c13cea41ccc91114f03",
        "user": {
          "login": "olaservo",
          "id": 16480113,
          "node_id": "MDQ6VXNlcjE2NDgwMTEz",
          "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/olaservo",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 932850603,
          "node_id": "R_kgDON5orqw",
          "name": "servers",
          "full_name": "olaservo/servers",
          "private": false,
          "owner": {
            "login": "olaservo",
            "id": 16480113,
            "node_id": "MDQ6VXNlcjE2NDgwMTEz",
            "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/olaservo",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/olaservo/servers",
          "created_at": "2025-02-14T16:28:20Z",
          "updated_at": "2026-01-24T17:22:39Z",
          "pushed_at": "2026-02-13T02:11:23Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28269,
          "stargazers_count": 1,
          "watchers_count": 1,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 1,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "760829a778bdf2204e42bc929ddd3b8264b29e99",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3163"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3163"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3163"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3163/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3163/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3163/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/0d676b5e7576f80d2d4d5c13cea41ccc91114f03"
        }
      },
      "author_association": "MEMBER",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3161",
      "id": 3132993188,
      "node_id": "PR_kwDONRaG_866va6k",
      "number": 3161,
      "state": "open",
      "locked": false,
      "title": "fix(memory): allow additional properties in entity/relation schemas",
      "user": {
        "login": "majiayu000",
        "id": 19658300,
        "node_id": "MDQ6VXNlcjE5NjU4MzAw",
        "avatar_url": "https://avatars.githubusercontent.com/u/19658300?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/majiayu000",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n- Added `.passthrough()` to `EntitySchema` and `RelationSchema`\n- Entities with extra properties in storage can now be read without validation errors\n- Added test case for the exact scenario described in issue #3144\n\n## Problem\nWhen `memory.jsonl` contains entities with extra properties (e.g., `custom_id`), the `read_graph` tool fails with:\n```\nMCP error -32602: Structured content does not match the tool's output schema: \ndata/entities/0 must NOT have additional properties\n```\n\n## Solution\nUsing Zod's `.passthrough()` allows the schema to accept additional properties while still validating required fields.\n\nFixes #3144",
      "created_at": "2025-12-28T14:26:20Z",
      "updated_at": "2025-12-30T06:42:10Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "majiayu000:fix/memory-schema-additional-properties",
        "ref": "fix/memory-schema-additional-properties",
        "sha": "dacdf62c10005cdcfd5d25997644207698d2f127",
        "user": {
          "login": "majiayu000",
          "id": 19658300,
          "node_id": "MDQ6VXNlcjE5NjU4MzAw",
          "avatar_url": "https://avatars.githubusercontent.com/u/19658300?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/majiayu000",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1124075950,
          "node_id": "R_kgDOQwAJrg",
          "name": "servers",
          "full_name": "majiayu000/servers",
          "private": false,
          "owner": {
            "login": "majiayu000",
            "id": 19658300,
            "node_id": "MDQ6VXNlcjE5NjU4MzAw",
            "avatar_url": "https://avatars.githubusercontent.com/u/19658300?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/majiayu000",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/majiayu000/servers",
          "created_at": "2025-12-28T09:21:12Z",
          "updated_at": "2025-12-28T09:21:12Z",
          "pushed_at": "2025-12-28T14:26:06Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27931,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "dcb47d2d94a3a33340053d2df550ae68d2795a3f",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3161"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3161"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3161"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3161/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3161/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3161/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/dacdf62c10005cdcfd5d25997644207698d2f127"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        3144
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3160",
      "id": 3132940803,
      "node_id": "PR_kwDONRaG_866vOID",
      "number": 3160,
      "state": "open",
      "locked": false,
      "title": "fix(memory): return connected relations in openNodes",
      "user": {
        "login": "majiayu000",
        "id": 19658300,
        "node_id": "MDQ6VXNlcjE5NjU4MzAw",
        "avatar_url": "https://avatars.githubusercontent.com/u/19658300?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/majiayu000",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n- `openNodes` now returns relations where **either** endpoint matches requested entities\n- Previously required **both** endpoints to match, making graph traversal impossible\n- Added tests for the fix including the exact scenario from issue #3137\n\nFixes #3137",
      "created_at": "2025-12-28T12:59:08Z",
      "updated_at": "2025-12-28T12:59:08Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "61b128681fb734609cd03098b3ea34a579e06349",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "majiayu000:fix/memory-open-nodes-relations",
        "ref": "fix/memory-open-nodes-relations",
        "sha": "250666d48c8845c132f67c537d4718049a2a099b",
        "user": {
          "login": "majiayu000",
          "id": 19658300,
          "node_id": "MDQ6VXNlcjE5NjU4MzAw",
          "avatar_url": "https://avatars.githubusercontent.com/u/19658300?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/majiayu000",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1124075950,
          "node_id": "R_kgDOQwAJrg",
          "name": "servers",
          "full_name": "majiayu000/servers",
          "private": false,
          "owner": {
            "login": "majiayu000",
            "id": 19658300,
            "node_id": "MDQ6VXNlcjE5NjU4MzAw",
            "avatar_url": "https://avatars.githubusercontent.com/u/19658300?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/majiayu000",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/majiayu000/servers",
          "created_at": "2025-12-28T09:21:12Z",
          "updated_at": "2025-12-28T09:21:12Z",
          "pushed_at": "2025-12-28T14:26:06Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27931,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "dcb47d2d94a3a33340053d2df550ae68d2795a3f",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3160"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3160"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3160"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3160/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3160/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3160/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/250666d48c8845c132f67c537d4718049a2a099b"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        3137
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3159",
      "id": 3132820530,
      "node_id": "PR_kwDONRaG_866uwwy",
      "number": 3159,
      "state": "open",
      "locked": false,
      "title": "docs(sequentialthinking): add usage instructions and testing guide",
      "user": {
        "login": "majiayu000",
        "id": 19658300,
        "node_id": "MDQ6VXNlcjE5NjU4MzAw",
        "avatar_url": "https://avatars.githubusercontent.com/u/19658300?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/majiayu000",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n- Adds \"How It Works\" section explaining the tool is invoked by AI automatically\n- Adds example interaction to demonstrate usage\n- Adds testing steps to verify the server is working\n\nFixes #3132",
      "created_at": "2025-12-28T09:25:36Z",
      "updated_at": "2025-12-28T09:25:36Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "72c7e0ce0280644d89e1db006e0327d113869178",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "majiayu000:fix/sequentialthinking-readme-usage",
        "ref": "fix/sequentialthinking-readme-usage",
        "sha": "1038dbcacd73272808a838d2290ed3f5c1662cec",
        "user": {
          "login": "majiayu000",
          "id": 19658300,
          "node_id": "MDQ6VXNlcjE5NjU4MzAw",
          "avatar_url": "https://avatars.githubusercontent.com/u/19658300?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/majiayu000",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1124075950,
          "node_id": "R_kgDOQwAJrg",
          "name": "servers",
          "full_name": "majiayu000/servers",
          "private": false,
          "owner": {
            "login": "majiayu000",
            "id": 19658300,
            "node_id": "MDQ6VXNlcjE5NjU4MzAw",
            "avatar_url": "https://avatars.githubusercontent.com/u/19658300?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/majiayu000",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/majiayu000/servers",
          "created_at": "2025-12-28T09:21:12Z",
          "updated_at": "2025-12-28T09:21:12Z",
          "pushed_at": "2025-12-28T14:26:06Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27931,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "dcb47d2d94a3a33340053d2df550ae68d2795a3f",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3159"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3159"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3159"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3159/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3159/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3159/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/1038dbcacd73272808a838d2290ed3f5c1662cec"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        3132
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3156",
      "id": 3131796860,
      "node_id": "PR_kwDONRaG_866q218",
      "number": 3156,
      "state": "open",
      "locked": false,
      "title": "fix(git): use git CLI in git_add to avoid GitPython index corruption bug",
      "user": {
        "login": "schuyler",
        "id": 57596,
        "node_id": "MDQ6VXNlcjU3NTk2",
        "avatar_url": "https://avatars.githubusercontent.com/u/57596?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/schuyler",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\n\r\nGitPython's index.add() has a known bug that corrupts the git index when paths contain ./ prefixes or when . is included in the file list. The bug causes:\r\n- Files appearing with ./ prefix (e.g., ./index.md)\r\n- The .git directory itself being staged\r\n- Corrupted commits requiring git filter-repo to fix\r\n\r\n## Motivation and Context\r\n\r\nThe previous implementation only handled the exact case of [\".\"] but failed to handle [\".\", \"other.md\"] or [\"./README.md\"]. This fix uses repo.git.add() (CLI wrapper) for all cases, which is consistent with how other git operations are implemented in this file and correctly handles all edge cases.\r\n\r\n## Testing\r\n\r\nI have been using the `mcp-server-git` MCP to allow Claude to edit a private [otterwiki](https://otterwiki.com). Prior to making this change locally, I was seeing corruption of the Git repository every few commits. Since applying the change about a week ago,  I have been using the wiki with Claude every single day and have not seen a single error of any kind.\r\n\r\n## Breaking Changes\r\n\r\nNone\r\n\r\n## Types of changes\r\n\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [ ] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [ ] I have documented all environment variables and configuration options\r\n\r\n## References\r\n\r\n- https://github.com/gitpython-developers/GitPython/issues/375\r\n- https://github.com/gitpython-developers/GitPython/issues/292\r\n\r\n",
      "created_at": "2025-12-27T01:02:20Z",
      "updated_at": "2025-12-27T01:02:20Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "schuyler:main",
        "ref": "main",
        "sha": "5014898978bc042ec32a376f2d9a9ba5e1d51c1d",
        "user": {
          "login": "schuyler",
          "id": 57596,
          "node_id": "MDQ6VXNlcjU3NTk2",
          "avatar_url": "https://avatars.githubusercontent.com/u/57596?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/schuyler",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1119929094,
          "node_id": "R_kgDOQsDDBg",
          "name": "mcp-servers",
          "full_name": "schuyler/mcp-servers",
          "private": false,
          "owner": {
            "login": "schuyler",
            "id": 57596,
            "node_id": "MDQ6VXNlcjU3NTk2",
            "avatar_url": "https://avatars.githubusercontent.com/u/57596?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/schuyler",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/schuyler/mcp-servers",
          "created_at": "2025-12-20T05:55:28Z",
          "updated_at": "2026-01-08T21:52:08Z",
          "pushed_at": "2025-12-20T07:41:22Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27467,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "dcb47d2d94a3a33340053d2df550ae68d2795a3f",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3156"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3156"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3156"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3156/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3156/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3156/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/5014898978bc042ec32a376f2d9a9ba5e1d51c1d"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3149",
      "id": 3124902843,
      "node_id": "PR_kwDONRaG_866Qju7",
      "number": 3149,
      "state": "open",
      "locked": false,
      "title": "fix(memory): add 'type' to schemas and use passthrough for Gemini CLI…",
      "user": {
        "login": "ericnjurio",
        "id": 1056937,
        "node_id": "MDQ6VXNlcjEwNTY5Mzc=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1056937?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ericnjurio",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Title\r\nfix(memory): enhance schema compatibility for strict JSON validators (like Gemini CLI)\r\n\r\nDescription\r\nThis PR updates the memory server's Zod schemas to improve compatibility with MCP clients that enforce strict JSON schema validation, such as the Google Gemini CLI. \r\n\r\nThe changes include:\r\n 1. Formally declaring the optional type property in EntitySchema and RelationSchema.\r\n 2. Enabling .passthrough() on these schemas to allow for internal or future properties without breaking strict validation.\r\n\r\nServer Details\r\n - Server: memory\r\n - Changes to: tools (Output schemas for read_graph, search_nodes, and open_nodes)\r\n\r\nMotivation and Context\r\nStrict MCP clients like the Gemini CLI perform rigorous validation on tool outputs. The memory server includes a type field in its internal JSONL storage which is subsequently returned in tool outputs. Since this field was not declared in the tool's output schema, Gemini CLI rejected the response with an \"additional properties not allowed\" error (code -32602).\r\n\r\nBy declaring the type field and using .passthrough(), we ensure the server remains robust and compatible with both permissive and strict clients.\r\n\r\nHow Has This Been Tested?\r\nTested locally using google-gemini-cli:\r\n - Verified that read_graph no longer triggers validation errors and returns the full graph.\r\n - Verified that search_nodes and open_nodes successfully return structured content.\r\n - Confirmed that data remains intact in the memory.jsonl file.\r\n\r\nBreaking Changes\r\n - No. This change is additive and increases tolerance for existing data structures.\r\n\r\nTypes of changes\r\n - [x] Bug fix (non-breaking change which fixes an issue)\r\n - [ ] New feature (non-breaking change which adds functionality)\r\n - [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n - [ ] Documentation update\r\n\r\nChecklist\r\n - [x] I have read the [MCP Protocol Documentation (https://modelcontextprotocol.io)\r\n - [x] My changes follows MCP security best practices\r\n - [x] I have updated the server's README accordingly (N/A - no user-facing config changes)\r\n - [x] I have tested this with an LLM client\r\n - [x] My code follows the repository's style guidelines\r\n - [ ] New and existing tests pass locally (Need to run npm test)\r\n - [x] I have added appropriate error handling\r\n - [x] I have documented all environment variables and configuration options (N/A)\r\n\r\nAdditional context\r\nThe type discriminator is essential for the server's internal logic when parsing the JSONL file. Formalizing its presence in the communication schema resolves the \"hidden property\" conflict with strict validators.\r\n",
      "created_at": "2025-12-23T04:48:32Z",
      "updated_at": "2026-01-19T15:24:02Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "f8a340b45517d1edb2533e9892f0e669da230b6d",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "ericnjurio:fix/memory-gemini-cli-compatibility",
        "ref": "fix/memory-gemini-cli-compatibility",
        "sha": "9264308dd502d39511eae116568be5311f53a441",
        "user": {
          "login": "ericnjurio",
          "id": 1056937,
          "node_id": "MDQ6VXNlcjEwNTY5Mzc=",
          "avatar_url": "https://avatars.githubusercontent.com/u/1056937?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/ericnjurio",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1121467556,
          "node_id": "R_kgDOQtg8pA",
          "name": "servers",
          "full_name": "ericnjurio/servers",
          "private": false,
          "owner": {
            "login": "ericnjurio",
            "id": 1056937,
            "node_id": "MDQ6VXNlcjEwNTY5Mzc=",
            "avatar_url": "https://avatars.githubusercontent.com/u/1056937?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/ericnjurio",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/ericnjurio/servers",
          "created_at": "2025-12-23T03:36:56Z",
          "updated_at": "2026-01-19T15:16:14Z",
          "pushed_at": "2026-01-19T15:24:01Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27776,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "55a3056a048edca1159f32b41057c3df9618aeba",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3149"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3149"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3149"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3149/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3149/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3149/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/9264308dd502d39511eae116568be5311f53a441"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3112",
      "id": 3080331234,
      "node_id": "PR_kwDONRaG_863mh_i",
      "number": 3112,
      "state": "open",
      "locked": false,
      "title": "docs: standardize installation instructions",
      "user": {
        "login": "sudoingX",
        "id": 200180104,
        "node_id": "U_kgDOC-6BiA",
        "avatar_url": "https://avatars.githubusercontent.com/u/200180104?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sudoingX",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n\nCreates a central `INSTALLATION.md` and updates all server READMEs to reference it, addressing documentation drift concerns raised in #2956.\n\n## Changes\n\n- **New:** `INSTALLATION.md` - Central installation guide covering:\n  - Quick reference table for all 7 servers\n  - TypeScript (npx) vs Python (uvx/pip) installation patterns\n  - Client configurations (Claude Desktop, VS Code, Zed, Zencoder)\n  - Docker patterns\n  - Debugging with MCP Inspector\n\n- **Updated:** All 7 server READMEs with reference link to central guide:\n  - `src/everything/README.md`\n  - `src/fetch/README.md`\n  - `src/filesystem/README.md`\n  - `src/git/README.md`\n  - `src/memory/README.md`\n  - `src/sequentialthinking/README.md`\n  - `src/time/README.md`\n\n## Why This Approach\n\nPer @domdomegg's comment in #2956: standardization prevents documentation drift where some apps have outdated setup steps compared to others.\n\nThis is a \"light touch\" approach that:\n1. Creates a single source of truth for common installation patterns\n2. Keeps server-specific details in their individual READMEs\n3. Minimizes review burden\n4. Can be extended in future PRs for fuller README standardization\n\n## Testing\n\n- [x] Verified all relative links resolve correctly (`../INSTALLATION.md`)\n- [x] Checked markdown renders properly\n- [x] No existing content removed\n\nFixes #3064",
      "created_at": "2025-12-08T06:56:54Z",
      "updated_at": "2025-12-08T07:07:11Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "1bd660d1378293256d21f694ea8aea2ffdec72e2",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "sudoingX:docs/issue-3064-standardize-install",
        "ref": "docs/issue-3064-standardize-install",
        "sha": "b25366ce95c7d00891d08a7d595d1fd2cac1c8f7",
        "user": {
          "login": "sudoingX",
          "id": 200180104,
          "node_id": "U_kgDOC-6BiA",
          "avatar_url": "https://avatars.githubusercontent.com/u/200180104?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/sudoingX",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1112109857,
          "node_id": "R_kgDOQklzIQ",
          "name": "servers",
          "full_name": "sudoingX/servers",
          "private": false,
          "owner": {
            "login": "sudoingX",
            "id": 200180104,
            "node_id": "U_kgDOC-6BiA",
            "avatar_url": "https://avatars.githubusercontent.com/u/200180104?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/sudoingX",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/sudoingX/servers",
          "created_at": "2025-12-08T06:55:27Z",
          "updated_at": "2025-12-08T06:55:27Z",
          "pushed_at": "2025-12-08T07:07:10Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27718,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "decb360cb7f36a4805c2d59abc0edd32247f2cb8",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3112"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3112"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3112"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3112/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3112/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3112/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/b25366ce95c7d00891d08a7d595d1fd2cac1c8f7"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        2,
        3,
        3064
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3109",
      "id": 3077885617,
      "node_id": "PR_kwDONRaG_863dM6x",
      "number": 3109,
      "state": "open",
      "locked": false,
      "title": "fix(index.ts): fix windows url encode",
      "user": {
        "login": "stolen-programmer",
        "id": 23734345,
        "node_id": "MDQ6VXNlcjIzNzM0MzQ1",
        "avatar_url": "https://avatars.githubusercontent.com/u/23734345?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/stolen-programmer",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\n\r\n## Publishing Your Server\r\n\r\n**Note: We are no longer accepting PRs to add servers to the README.** Instead, please publish your server to the [MCP Server Registry](https://github.com/modelcontextprotocol/registry) to make it discoverable to the MCP ecosystem.\r\n\r\nTo publish your server, follow the [quickstart guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx). You can browse published servers at [https://registry.modelcontextprotocol.io/](https://registry.modelcontextprotocol.io/).\r\n\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: <!-- e.g., filesystem, github -->\r\n- Changes to: <!-- e.g., tools, resources, prompts -->\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [ ] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [ ] My changes follows MCP security best practices\r\n- [ ] I have updated the server's README accordingly\r\n- [ ] I have tested this with an LLM client\r\n- [ ] My code follows the repository's style guidelines\r\n- [ ] New and existing tests pass locally\r\n- [ ] I have added appropriate error handling\r\n- [ ] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2025-12-06T17:12:03Z",
      "updated_at": "2025-12-06T17:12:03Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "6b8ff5389957b0876928e9d728d224d455c59fe6",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "stolen-programmer:patch-2",
        "ref": "patch-2",
        "sha": "7c9a8bc630790b198e8d7acee2567ee71f3a04a1",
        "user": {
          "login": "stolen-programmer",
          "id": 23734345,
          "node_id": "MDQ6VXNlcjIzNzM0MzQ1",
          "avatar_url": "https://avatars.githubusercontent.com/u/23734345?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/stolen-programmer",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1111301105,
          "node_id": "R_kgDOQj0b8Q",
          "name": "servers",
          "full_name": "stolen-programmer/servers",
          "private": false,
          "owner": {
            "login": "stolen-programmer",
            "id": 23734345,
            "node_id": "MDQ6VXNlcjIzNzM0MzQ1",
            "avatar_url": "https://avatars.githubusercontent.com/u/23734345?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/stolen-programmer",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/stolen-programmer/servers",
          "created_at": "2025-12-06T17:06:52Z",
          "updated_at": "2025-12-06T17:06:52Z",
          "pushed_at": "2025-12-06T17:10:43Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27720,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "05f506b3b1877ad408c99ab62753a2ec89973097",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3109"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3109"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3109"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3109/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3109/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3109/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/7c9a8bc630790b198e8d7acee2567ee71f3a04a1"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3094",
      "id": 3057448823,
      "node_id": "PR_kwDONRaG_862PPd3",
      "number": 3094,
      "state": "open",
      "locked": false,
      "title": "fix(memory): strip type field from entities/relations in loadGraph",
      "user": {
        "login": "jared03",
        "id": 11325039,
        "node_id": "MDQ6VXNlcjExMzI1MDM5",
        "avatar_url": "https://avatars.githubusercontent.com/u/11325039?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jared03",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\nFixes schema validation error in read operations (`read_graph`, `search_nodes`, `open_nodes`).\n\n## Problem\nThe JSONL file stores entities with a `type` field to distinguish them from relations:\n```json\n{\"type\":\"entity\",\"name\":\"...\",\"entityType\":\"...\",\"observations\":[...]}\n```\n\nBut the output schema only expects `{name, entityType, observations}` - no `type` field.\n\nThis causes all read operations to fail with:\n```\nMCP error -32602: Structured content does not match the tool's output schema: data.entities[0] should NOT have additional properties\n```\n\n## Solution\nStrip the `type` field using destructuring before pushing to result arrays:\n```typescript\nif (item.type === \"entity\") {\n  const { type, ...entity } = item;\n  graph.entities.push(entity as Entity);\n}\nif (item.type === \"relation\") {\n  const { type, ...relation } = item;\n  graph.relations.push(relation as Relation);\n}\n```\n\n## Testing\n- All 39 existing tests pass\n- All read operations now return valid responses\n- Write operations continue to work correctly\n- Existing JSONL files remain fully compatible\n\nFixes #3074",
      "created_at": "2025-12-01T02:38:05Z",
      "updated_at": "2026-01-12T16:05:18Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "jared03:fix/memory-schema-validation",
        "ref": "fix/memory-schema-validation",
        "sha": "6fdf5021d511c6c715a5f030d668ae7eab3c9bfb",
        "user": {
          "login": "jared03",
          "id": 11325039,
          "node_id": "MDQ6VXNlcjExMzI1MDM5",
          "avatar_url": "https://avatars.githubusercontent.com/u/11325039?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/jared03",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1107351403,
          "node_id": "R_kgDOQgDXaw",
          "name": "servers",
          "full_name": "jared03/servers",
          "private": false,
          "owner": {
            "login": "jared03",
            "id": 11325039,
            "node_id": "MDQ6VXNlcjExMzI1MDM5",
            "avatar_url": "https://avatars.githubusercontent.com/u/11325039?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jared03",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/jared03/servers",
          "created_at": "2025-12-01T02:36:24Z",
          "updated_at": "2025-12-01T02:36:24Z",
          "pushed_at": "2025-12-06T22:17:15Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27712,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "05f506b3b1877ad408c99ab62753a2ec89973097",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3094"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3094"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3094"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3094/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3094/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3094/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/6fdf5021d511c6c715a5f030d668ae7eab3c9bfb"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        3,
        3074
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3087",
      "id": 3055240027,
      "node_id": "PR_kwDONRaG_862G0Nb",
      "number": 3087,
      "state": "open",
      "locked": false,
      "title": "Document setup for Filesystem MCP Server on Windows",
      "user": {
        "login": "bobmcgurk",
        "id": 52014214,
        "node_id": "MDQ6VXNlcjUyMDE0MjE0",
        "avatar_url": "https://avatars.githubusercontent.com/u/52014214?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/bobmcgurk",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Added detailed instructions for installing and configuring the Filesystem MCP Server for Claude Desktop on Windows, including troubleshooting tips and customization options.\r\n\r\nAddresses Roaming Issue common to Windows computers and provides guidance for config file.\r\n\r\n<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\n\r\n## Publishing Your Server\r\n\r\n**Note: We are no longer accepting PRs to add servers to the README.** Instead, please publish your server to the [MCP Server Registry](https://github.com/modelcontextprotocol/registry) to make it discoverable to the MCP ecosystem.\r\n\r\nTo publish your server, follow the [quickstart guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx). You can browse published servers at [https://registry.modelcontextprotocol.io/](https://registry.modelcontextprotocol.io/).\r\n\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: <!-- e.g., filesystem, github -->\r\n- Changes to: <!-- e.g., tools, resources, prompts -->\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [ ] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [ ] My changes follows MCP security best practices\r\n- [ ] I have updated the server's README accordingly\r\n- [ ] I have tested this with an LLM client\r\n- [ ] My code follows the repository's style guidelines\r\n- [ ] New and existing tests pass locally\r\n- [ ] I have added appropriate error handling\r\n- [ ] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2025-11-29T02:39:19Z",
      "updated_at": "2025-11-29T02:39:19Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "7086cb895739275c97148d309673cdd9bfdd86b1",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "bobmcgurk:patch-2",
        "ref": "patch-2",
        "sha": "0979c405014af2ce575aa883ec9b9306680522b2",
        "user": {
          "login": "bobmcgurk",
          "id": 52014214,
          "node_id": "MDQ6VXNlcjUyMDE0MjE0",
          "avatar_url": "https://avatars.githubusercontent.com/u/52014214?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/bobmcgurk",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1106318078,
          "node_id": "R_kgDOQfES_g",
          "name": "servers",
          "full_name": "bobmcgurk/servers",
          "private": false,
          "owner": {
            "login": "bobmcgurk",
            "id": 52014214,
            "node_id": "MDQ6VXNlcjUyMDE0MjE0",
            "avatar_url": "https://avatars.githubusercontent.com/u/52014214?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bobmcgurk",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/bobmcgurk/servers",
          "created_at": "2025-11-29T02:33:58Z",
          "updated_at": "2025-11-29T02:33:58Z",
          "pushed_at": "2025-11-29T02:37:57Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27716,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "d1d6a123c6d1480ed75298b5c2458168fddb1970",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3087"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3087"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3087"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3087/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3087/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3087/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/0979c405014af2ce575aa883ec9b9306680522b2"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3084",
      "id": 3052662745,
      "node_id": "PR_kwDONRaG_8618-_Z",
      "number": 3084,
      "state": "open",
      "locked": false,
      "title": "add streamable http transport support to memory and sequentialthinking",
      "user": {
        "login": "robertlestak",
        "id": 20756288,
        "node_id": "MDQ6VXNlcjIwNzU2Mjg4",
        "avatar_url": "https://avatars.githubusercontent.com/u/20756288?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/robertlestak",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\n\r\nAdd streamable HTTP transport support to memory and sequential thinking MCP servers, enabling them to run over HTTP in addition to the default stdio transport.\r\n\r\n## Server Details\r\n\r\n- Servers: memory, sequential-thinking\r\n- Changes to: transport layer (added HTTP support alongside stdio)\r\n\r\n## Motivation and Context\r\n\r\nThis change enables these servers to be used in environments where HTTP transport is preferred or required over stdio, such as web-based clients or containerized deployments. The implementation maintains backward compatibility by defaulting to stdio transport.\r\n\r\n## How Has This Been Tested?\r\n\r\n- Tested stdio transport (default behavior) remains unchanged\r\n- Tested HTTP transport with `MCP_TRANSPORT=http` environment variable\r\n- Verified session management (initialization, message handling, cleanup)\r\n- Confirmed both POST/GET/DELETE request handling works correctly\r\n\r\n## Breaking Changes\r\n\r\nNo breaking changes. This is fully backward compatible:\r\n- Default behavior (stdio) is unchanged\r\n- HTTP transport is opt-in via `MCP_TRANSPORT=http` environment variable\r\n\r\n## Types of changes\r\n\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [x] Documentation update\r\n\r\n## Checklist\r\n\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n\r\nImplementation follows the pattern from the Immich MCP server PR. Key features:\r\n- Uses `@modelcontextprotocol/sdk` v1.23.0 StreamableHTTPServerTransport\r\n- Session management with UUID-based session IDs\r\n- Supports POST (send), GET (receive), DELETE (close) HTTP methods\r\n- Environment variables:\r\n  - `MCP_TRANSPORT=http` - enables HTTP transport (default: stdio)\r\n  - `PORT` - HTTP port number (default: 3000)\r\n",
      "created_at": "2025-11-28T00:43:54Z",
      "updated_at": "2025-12-12T10:33:35Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "robertlestak:streamable-http",
        "ref": "streamable-http",
        "sha": "b5152bd8256c0f2fc3774a7dfd2593b1e8a9655e",
        "user": {
          "login": "robertlestak",
          "id": 20756288,
          "node_id": "MDQ6VXNlcjIwNzU2Mjg4",
          "avatar_url": "https://avatars.githubusercontent.com/u/20756288?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/robertlestak",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1105653319,
          "node_id": "R_kgDOQebuRw",
          "name": "servers",
          "full_name": "robertlestak/servers",
          "private": false,
          "owner": {
            "login": "robertlestak",
            "id": 20756288,
            "node_id": "MDQ6VXNlcjIwNzU2Mjg4",
            "avatar_url": "https://avatars.githubusercontent.com/u/20756288?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/robertlestak",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/robertlestak/servers",
          "created_at": "2025-11-28T00:37:22Z",
          "updated_at": "2025-11-28T00:37:23Z",
          "pushed_at": "2025-11-30T17:37:46Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27290,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "d1d6a123c6d1480ed75298b5c2458168fddb1970",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3084"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3084"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3084"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3084/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3084/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3084/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/b5152bd8256c0f2fc3774a7dfd2593b1e8a9655e"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3060",
      "id": 3043232425,
      "node_id": "PR_kwDONRaG_861ZAqp",
      "number": 3060,
      "state": "open",
      "locked": false,
      "title": "Added in-memory locks for the process, fix for Bug #2579 temporary measure.",
      "user": {
        "login": "davidw-philips",
        "id": 223673186,
        "node_id": "U_kgDODVT7Yg",
        "avatar_url": "https://avatars.githubusercontent.com/u/223673186?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/davidw-philips",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\nAdds in-memory locks to prevent race conditions in mcp-server-memory that caused file corruption and \"Unexpected non-whitespace character after JSON\" errors\r\n\r\n## Description\r\n\r\nSolves the following issue: Bug Report and Resolution: mcp-server-memory Failures due to Race Condition and Environment Misconfiguration #2579\r\n\r\nThe memory server had no protection against concurrent file writes. When multiple operations tried to read, modify, and write to the `memory.jsonl` file simultaneously, they would corrupt the file causing JSON parsing errors. This fix implements a Promise-based in-memory lock manager that serializes all file operations, ensuring atomic read-modify-write cycles without data loss or corruption.\r\n\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: memory\r\n- Changes to: Core file operation logic and locking mechanism\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\n\r\nThe memory server was experiencing critical failures when handling concurrent tool invocations:\r\n1. **Race Condition**: Multiple concurrent read-modify-write operations on `memory.jsonl`\r\n2. **File Corruption**: Interleaved writes resulted in truncated JSON lines\r\n3. **Data Loss**: Some writes would completely overwrite others\r\n4. **JSON Parse Errors**: \"Unexpected non-whitespace character after JSON\" when reading corrupted files\r\n\r\nThis was particularly problematic when Claude made multiple memory operations in quick succession or when the server handled rapid concurrent requests. The fix ensures all operations are properly serialized while maintaining high performance through JavaScript's asynchronous Promise-based queue system.\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\n\r\nComprehensive testing with vitest including:\r\n- **Race Condition Prevention Tests** (5 tests): Concurrent entity/relation creation, high-concurrency scenarios, mixed read/write operations\r\n- **Lock Verification Tests** (6 tests): Serialization verification, JSONL format integrity, atomic operation verification\r\n- **Existing Tests**: All 30 original knowledge graph tests continue to pass\r\n- **Coverage**: 82.69% statement coverage, 97.46% branch coverage, 94.73% function coverage\r\n\r\nTotal: **50/50 tests passing** with no regressions\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\nNo breaking changes. The fix is transparent to users:\r\n- Same API and tool signatures\r\n- Same file format (JSONL)\r\n- No configuration changes required\r\n- Backward compatible with existing `memory.jsonl` files\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Implementation Details\r\n\r\n### Changes Made\r\n\r\n1. **Lock Manager Implementation** (`src/memory/index.ts`):\r\n   - Added `LockManager` class using Promise-based queue for per-file serialization\r\n   - All file operations wrapped with `executeWithLock()` to ensure atomicity\r\n   - No external dependencies required (removed `proper-lockfile`)\r\n\r\n2. **Test Suite Enhancement**:\r\n   - Created `race-condition.test.ts` with 5 comprehensive concurrent access tests\r\n   - Created `lock-verification.test.ts` with 6 lock mechanism verification tests\r\n   - Both follow vitest standards per CONTRIBUTING.md requirements\r\n   - Removed Python test files in favor of TypeScript equivalents\r\n\r\n3. **Dependencies**:\r\n   - Removed: `proper-lockfile` and `@types/proper-lockfile`\r\n   - Added: None (uses built-in Promise-based async/await)\r\n\r\n### How It Works\r\n\r\nThe `LockManager` maintains a Map of Promise chains, one per file. When an operation is requested:\r\n1. Get the current lock promise for the file (or start with resolved Promise)\r\n2. Chain the new operation to that promise\r\n3. Store the updated promise chain for future operations\r\n4. This ensures operations execute sequentially without data corruption\r\n\r\n### Performance Considerations\r\n\r\n- **No blocking**: Uses JavaScript's asynchronous Promise queue, not OS-level blocking\r\n- **Minimal overhead**: Simple Map lookup and Promise chaining\r\n- **Efficient**: Operations complete faster due to serialization (no partial writes)\r\n- **Scalable**: Works for single instance deployments (intended use case)\r\n\r\n## Additional Context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n\r\n### Architecture Notes\r\n\r\nThe fix assumes a single MCP server instance, which is the standard deployment model for MCP servers. The in-memory Promise-based lock provides optimal performance for this scenario while preventing all race conditions within a single process.\r\n\r\n**⚠️ Important: This is a Temporary Measure for Single Editor Usage**\r\n\r\nThis implementation is designed for users running **one code editor/LLM client at a time** (e.g., Claude Desktop, VS Code, or CLI - but not multiple simultaneously). If you use multiple LLM clients or editors concurrently with the same memory file, you may still experience race conditions.\r\n\r\n### Multi-Client Scenarios\r\n\r\nIf you need to use multiple LLM clients/editors simultaneously (e.g., Claude CLI + Gemini CLI + VS Code all at the same time), you should implement one of the following production-ready locking strategies:\r\n\r\n#### Option 1: SQLite Database (Recommended)\r\n- **Library**: Use `better-sqlite3` or built-in Node.js SQLite support\r\n- **Advantages**: ACID transactions, process-safe, no external dependencies\r\n- **Implementation**: Replace JSONL storage with SQLite tables\r\n- **Example**:\r\n  ```typescript\r\n  import Database from 'better-sqlite3';\r\n  \r\n  const db = new Database('memory.db');\r\n  // Transactions handle all locking automatically\r\n  db.exec('BEGIN TRANSACTION');\r\n  // ... read and write operations ...\r\n  db.exec('COMMIT');\r\n  ```\r\n\r\n#### Option 2: Redis with Atomic Operations\r\n- **Library**: `redis` npm package\r\n- **Advantages**: Distributed locking, multi-machine support, battle-tested\r\n- **Implementation**: Store graph in Redis with Lua scripting for atomic operations\r\n- **Example**:\r\n  ```typescript\r\n  const client = redis.createClient();\r\n  // SET with NX (only if not exists) for locks\r\n  const acquired = await client.set('memory:lock', '1', { NX: true, EX: 30 });\r\n  ```\r\n\r\n#### Option 3: Filesystem Locks with Retry Logic\r\n- **Library**: `proper-lockfile` (production-ready version) or `fs-ext`\r\n- **Advantages**: No external services required, cross-process safe\r\n- **Implementation**: Use OS-level file locks with exponential backoff\r\n- **Note**: Requires careful error handling and timeout management\r\n\r\n#### Option 4: Message Queue Pattern\r\n- **Library**: Bull, RabbitMQ, or Apache Kafka\r\n- **Advantages**: Serializes all operations globally, scalable\r\n- **Implementation**: Queue all graph operations through a message broker\r\n- **Use Case**: Large-scale systems with many concurrent clients\r\n\r\n### Recommendations by Use Case\r\n\r\n| Use Case | Recommendation | Rationale |\r\n|----------|---|---|\r\n| Single editor (Claude Desktop or VS Code) | Current in-memory locks ✓ | Optimal performance, simple, sufficient |\r\n| Local multi-client (CLI + Desktop) | SQLite with transactions | No external dependencies, ACID guarantees |\r\n| Production deployment | Redis or SQLite | Robust, scalable, battle-tested |\r\n| Enterprise multi-machine | Redis + Lua scripting | Distributed locking support |\r\n\r\n### Future Improvements\r\n\r\nConsider opening an issue or PR to implement:\r\n1. Pluggable lock strategy pattern\r\n2. SQLite backend option as default\r\n3. Configuration to choose lock implementation\r\n4. Documentation on multi-client setups\r\n\r\n### Related Issues\r\n\r\n- Fixes the \"Unexpected non-whitespace character after JSON\" errors reported in issue #2579\r\n- Also prevents similar issues that could occur in the filesystem server or other servers with concurrent file access\r\n\r\n### Testing Recommendations\r\n\r\nWhen integrating with Claude Desktop or other LLM clients:\r\n1. Test rapid consecutive memory operations\r\n2. Test concurrent tool invocations\r\n3. Verify memory persists correctly across sessions\r\n4. Monitor for any JSON parsing errors in logs\r\n\r\nAll tests should pass with the new implementation.\r\n",
      "created_at": "2025-11-25T10:53:25Z",
      "updated_at": "2025-11-25T10:57:14Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "8b02af04dfae03bfea60de9005bddd39fdb29e97",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "davidw-philips:bugfix/in-memory-locks",
        "ref": "bugfix/in-memory-locks",
        "sha": "e7142321947fbdaf599e2b1472dfc915aeb0668d",
        "user": {
          "login": "davidw-philips",
          "id": 223673186,
          "node_id": "U_kgDODVT7Yg",
          "avatar_url": "https://avatars.githubusercontent.com/u/223673186?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/davidw-philips",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1103745750,
          "node_id": "R_kgDOQcnS1g",
          "name": "servers",
          "full_name": "davidw-philips/servers",
          "private": false,
          "owner": {
            "login": "davidw-philips",
            "id": 223673186,
            "node_id": "U_kgDODVT7Yg",
            "avatar_url": "https://avatars.githubusercontent.com/u/223673186?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/davidw-philips",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/davidw-philips/servers",
          "created_at": "2025-11-25T09:28:37Z",
          "updated_at": "2025-11-25T09:28:37Z",
          "pushed_at": "2025-11-25T10:04:32Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 26722,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "84c2824f03b3cf741fdab6c6ec33a24119b76427",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3060"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/3060"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3060"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/3060/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3060/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/3060/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/e7142321947fbdaf599e2b1472dfc915aeb0668d"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        2
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2981",
      "id": 2998155557,
      "node_id": "PR_kwDONRaG_86ytDkl",
      "number": 2981,
      "state": "open",
      "locked": false,
      "title": "feat(git): add signed commit tool with GPG support",
      "user": {
        "login": "joaommartins",
        "id": 1743850,
        "node_id": "MDQ6VXNlcjE3NDM4NTA=",
        "avatar_url": "https://avatars.githubusercontent.com/u/1743850?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/joaommartins",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\n\r\n- Add git_commit_signed tool that supports GPG signing of commits\r\n- Accepts optional key_id parameter to sign with specific GPG key\r\n- Uses git commit -S flag for signing (works with default or specified key)\r\n- Add comprehensive tests for signed commits\r\n- Update GitTools enum and tool registration\r\n \r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: git\r\n- Changes to: tools, README\r\n\r\n## Motivation and Context\r\n\r\nI use the git mcp server extensively, but I prefer to have my git commits GPG-signed. This change adds slightly modifies the `git_commit` inputs, but has to use the `git.Repo.git.commit` function instead of `git.Repo.index.commit`, which doesn't support GPG-signed git commits.\r\n\r\n## How Has This Been Tested?\r\n\r\nThere are tests present that cover the functionality implemented. The commits in this branch were also created using the new tool itself.\r\n\r\n## Breaking Changes\r\nNone.\r\n\r\n## Types of changes\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [x] Documentation update\r\n\r\n## Checklist\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n",
      "created_at": "2025-11-11T08:42:59Z",
      "updated_at": "2025-12-09T22:47:58Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "joaommartins:feat/git-signed-commit",
        "ref": "feat/git-signed-commit",
        "sha": "48edde6813a307e093b8ec50ac3b17911d2fa00f",
        "user": {
          "login": "joaommartins",
          "id": 1743850,
          "node_id": "MDQ6VXNlcjE3NDM4NTA=",
          "avatar_url": "https://avatars.githubusercontent.com/u/1743850?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/joaommartins",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1094001789,
          "node_id": "R_kgDOQTUkfQ",
          "name": "servers",
          "full_name": "joaommartins/servers",
          "private": false,
          "owner": {
            "login": "joaommartins",
            "id": 1743850,
            "node_id": "MDQ6VXNlcjE3NDM4NTA=",
            "avatar_url": "https://avatars.githubusercontent.com/u/1743850?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/joaommartins",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/joaommartins/servers",
          "created_at": "2025-11-11T05:51:33Z",
          "updated_at": "2025-12-09T22:37:14Z",
          "pushed_at": "2025-12-09T23:11:51Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27256,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "decb360cb7f36a4805c2d59abc0edd32247f2cb8",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2981"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2981"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2981"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2981/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2981/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2981/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/48edde6813a307e093b8ec50ac3b17911d2fa00f"
        }
      },
      "author_association": "CONTRIBUTOR",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2965",
      "id": 2989120760,
      "node_id": "PR_kwDONRaG_86yKlz4",
      "number": 2965,
      "state": "open",
      "locked": false,
      "title": "Replace npm ci command with npm run build in Dockerfile",
      "user": {
        "login": "bruno-t-cardoso",
        "id": 132483100,
        "node_id": "U_kgDOB-WIHA",
        "avatar_url": "https://avatars.githubusercontent.com/u/132483100?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/bruno-t-cardoso",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\nFixed the Dockerfile for the sequential-thinking MCP server to properly compile TypeScript code during the Docker build process.\r\n\r\n## Server Details\r\n- Server: sequential-thinking\r\n- Changes to: Dockerfile build process\r\n\r\n## Motivation and Context\r\nThe original Dockerfile had a bug that prevented the TypeScript code from being compiled to JavaScript during the Docker build. Line 10 was running `npm ci --ignore-scripts --omit-dev`, which skipped the `prepare` script that triggers the build. This resulted in a Docker image that appeared to build successfully but was non-functional because the `dist` directory was missing.\r\n\r\nThis fix ensures the TypeScript code is properly compiled by explicitly running `npm run build` after installing dependencies.\r\n\r\n## How Has This Been Tested?\r\n- Built the Docker image using: `docker build -t mcp/sequentialthinking -f src/sequentialthinking/Dockerfile .`\r\n- Tested MCP protocol communication with: `echo '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"test\",\"version\":\"1.0\"}}}' | docker run --rm -i mcp/sequentialthinking`\r\n- Verified the server responds correctly to `initialize` and `tools/list` requests\r\n- Tested with Augment Code MCP client configuration\r\n\r\n## Breaking Changes\r\nNo breaking changes. Users with the previous broken Docker image will need to rebuild it, but the configuration remains the same.\r\n\r\n## Types of changes\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n**Before:** The Dockerfile ran `npm ci --ignore-scripts --omit-dev` which prevented the TypeScript compilation.\r\n\r\n**After:** The Dockerfile now explicitly runs `npm run build` to compile TypeScript to JavaScript, ensuring the `dist` directory is created and the Docker image is functional.\r\n\r\nThis fix makes the Docker installation method documented in the README actually work as intended.",
      "created_at": "2025-11-07T15:39:33Z",
      "updated_at": "2025-11-07T15:40:40Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "0142bee9b05db21aa6ea40548d0fede592cd9585",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "bruno-t-cardoso:main",
        "ref": "main",
        "sha": "9607a99946fa99dfc9b774c0b0a204d1ea7cedf5",
        "user": {
          "login": "bruno-t-cardoso",
          "id": 132483100,
          "node_id": "U_kgDOB-WIHA",
          "avatar_url": "https://avatars.githubusercontent.com/u/132483100?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/bruno-t-cardoso",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1091835569,
          "node_id": "R_kgDOQRQWsQ",
          "name": "servers",
          "full_name": "bruno-t-cardoso/servers",
          "private": false,
          "owner": {
            "login": "bruno-t-cardoso",
            "id": 132483100,
            "node_id": "U_kgDOB-WIHA",
            "avatar_url": "https://avatars.githubusercontent.com/u/132483100?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bruno-t-cardoso",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/bruno-t-cardoso/servers",
          "created_at": "2025-11-07T15:36:11Z",
          "updated_at": "2025-11-07T15:36:24Z",
          "pushed_at": "2025-11-07T15:36:15Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27021,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "b6862234890fed5ee3a3c84c8521d686333298f6",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2965"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2965"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2965"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2965/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2965/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2965/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/9607a99946fa99dfc9b774c0b0a204d1ea7cedf5"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2961",
      "id": 2985988270,
      "node_id": "PR_kwDONRaG_86x-pCu",
      "number": 2961,
      "state": "open",
      "locked": false,
      "title": "Add git_push tool to Git MCP server",
      "user": {
        "login": "thecoderpanda",
        "id": 6279391,
        "node_id": "MDQ6VXNlcjYyNzkzOTE=",
        "avatar_url": "https://avatars.githubusercontent.com/u/6279391?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/thecoderpanda",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "- Implement git_push function with support for:\r\n  - Pushing to custom remotes (default: origin)\r\n  - Pushing specific branches\r\n  - Force push capability\r\n  - Setting upstream branch (-u flag)\r\n- Add GitPush model with comprehensive field descriptions\r\n- Register git_push as a new tool in the MCP server\r\n- Add test coverage for push functionality\r\n- Update README with git_push tool documentation\r\nResolves #618\r\n\r\n## Description\r\n\r\nThis PR implements the `git_push` tool for the Git MCP server, enabling users to push branches to remote repositories. This addresses issue #618 where users need the ability to push branches remotely to support integration with other MCPs that create pull requests.\r\n\r\n## Server Details\r\n\r\n- Server: git\r\n- Changes to: tools, README documentation\r\n\r\n## Motivation and Context\r\n\r\nUsers working with multiple MCPs need the ability to push branches to remote repositories before creating pull requests through other tools. The Git MCP server previously lacked this functionality, limiting its utility in CI/CD and automation workflows. This feature enables seamless integration with other MCPs that depend on remote branch existence.\r\n\r\n## How Has This Been Tested?\r\n\r\n- Added `test_git_push_no_remote()` unit test to verify error handling when pushing to a non-existent remote\r\n- Verified syntax and imports compile correctly with Python 3.10\r\n- Tested with actual GitPython library to ensure proper argument composition\r\n\r\n## Breaking Changes\r\n\r\nNo breaking changes. This is a new tool addition that does not affect existing functionality.\r\n\r\n## Types of changes\r\n\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [x] Documentation update\r\n\r\n## Checklist\r\n\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with unit tests\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all parameters and configuration options\r\n\r\n## Additional context\r\n\r\nThe implementation uses GitPython's `repo.git.push()` method with dynamic argument construction to support:\r\n- Optional branch specification (defaults to current branch)\r\n- Custom remote targets (defaults to 'origin')\r\n- Force push for overwriting remote history\r\n- Upstream tracking with the `-u` flag\r\n\r\nAll parameters are optional with sensible defaults, making the tool flexible for various use cases.\r\n\r\n---\r\n\r\n**Built with [Zencoder](https://zencoder.ai)**\r\n",
      "created_at": "2025-11-06T19:41:08Z",
      "updated_at": "2025-11-06T19:45:33Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "thecoderpanda:feature/git-push-tool",
        "ref": "feature/git-push-tool",
        "sha": "e139c6bbb0d354fd333f9647f41854d35d68ed02",
        "user": {
          "login": "thecoderpanda",
          "id": 6279391,
          "node_id": "MDQ6VXNlcjYyNzkzOTE=",
          "avatar_url": "https://avatars.githubusercontent.com/u/6279391?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/thecoderpanda",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1091268933,
          "node_id": "R_kgDOQQtxRQ",
          "name": "servers",
          "full_name": "thecoderpanda/servers",
          "private": false,
          "owner": {
            "login": "thecoderpanda",
            "id": 6279391,
            "node_id": "MDQ6VXNlcjYyNzkzOTE=",
            "avatar_url": "https://avatars.githubusercontent.com/u/6279391?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/thecoderpanda",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/thecoderpanda/servers",
          "created_at": "2025-11-06T19:36:19Z",
          "updated_at": "2025-11-06T19:36:19Z",
          "pushed_at": "2025-11-06T19:40:26Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 27059,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "b6862234890fed5ee3a3c84c8521d686333298f6",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2961"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2961"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2961"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2961/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2961/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2961/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/e139c6bbb0d354fd333f9647f41854d35d68ed02"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        6,
        618
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2831",
      "id": 2898278156,
      "node_id": "PR_kwDONRaG_86swDcM",
      "number": 2831,
      "state": "open",
      "locked": false,
      "title": "everything: zip tool: add outputType to control resource vs. resource link output",
      "user": {
        "login": "ochafik",
        "id": 273860,
        "node_id": "MDQ6VXNlcjI3Mzg2MA==",
        "avatar_url": "https://avatars.githubusercontent.com/u/273860?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/ochafik",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Follow up on https://github.com/modelcontextprotocol/servers/pull/2830\r\n\r\n- Switch to gzip / single file so there's no extra deps\r\n- Tool has default inputs to facilitate testing\r\n- Add outputType input:\r\n  - resource: blob\r\n  - resourceLink: needs to be read by uri after the fact\r\n- Added limitations:\r\n  - fetch size limit = 10MB (overridable w/ `GZIP_MAX_FETCH_SIZE`)\r\n  - fetch timeout (over all files) = 30sec (overridable w/ `GZIP_MAX_FETCH_TIME_MILLIS` env var)\r\n  - only fetch `http:`, `https:` (restricted to domains listed in `GZIP_ALLOWED_DOMAINS` to mitigate [SSRF attacks](https://en.wikipedia.org/wiki/Server-side_request_forgery); defaults to just `raw.githubusercontent.com`) and `data:` URIs; no `file:`\r\n\r\ncc/ @crondinini-ant\r\n\r\nTo test:\r\n- Run gzip tool w/ a url as input (must be on raw.githubusercontent.com)\r\n\r\n  <img width=\"1634\" height=\"1572\" alt=\"image\" src=\"https://github.com/user-attachments/assets/f90ff15f-2d65-4af7-9737-d39792e6e5f1\" />\r\n\r\n- If selecting `resourceLink` for `outputType`, the resource can then be read in the resources tab (hit `List More Resources` until reached last page)\r\n\r\n  <img width=\"2082\" height=\"1070\" alt=\"CleanShot 2025-10-14 at 20 21 14@2x\" src=\"https://github.com/user-attachments/assets/1afae5ff-5912-426c-8bda-52258d1012b1\" />\r\n",
      "created_at": "2025-10-08T17:56:10Z",
      "updated_at": "2026-02-06T09:15:52Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {
        "0": {
          "login": "domdomegg",
          "id": 4953590,
          "node_id": "MDQ6VXNlcjQ5NTM1OTA=",
          "avatar_url": "https://avatars.githubusercontent.com/u/4953590?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/domdomegg",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "1": {
          "login": "cliffhall",
          "id": 871933,
          "node_id": "MDQ6VXNlcjg3MTkzMw==",
          "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/cliffhall",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "modelcontextprotocol:ochafik/zip-tool-outputs",
        "ref": "ochafik/zip-tool-outputs",
        "sha": "4e8bf39a16158fcb48367938325bed3f21a4dc67",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "dc21983e3b2f39f3c7d1f84209cb83f8ff982ca7",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2831"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2831"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2831"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2831/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2831/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2831/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/4e8bf39a16158fcb48367938325bed3f21a4dc67"
        }
      },
      "author_association": "CONTRIBUTOR",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2816",
      "id": 2885413142,
      "node_id": "PR_kwDONRaG_86r--kW",
      "number": 2816,
      "state": "open",
      "locked": false,
      "title": "feat(filesystem): add append_file and write_or_update_file tools",
      "user": {
        "login": "agn-7",
        "id": 14202344,
        "node_id": "MDQ6VXNlcjE0MjAyMzQ0",
        "avatar_url": "https://avatars.githubusercontent.com/u/14202344?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/agn-7",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\n\r\nFixes #2807\r\n\r\nAdded two new tools to the filesystem MCP server for enhanced file modification capabilities:\r\n- `append_file`: Appends content to existing files without overwriting\r\n- `write_or_update_file`: Creates new files or appends to existing ones (smart create-or-append)\r\n\r\nThese tools complement the existing `write_file` tool by providing non-destructive file operations, addressing the common use case where users want to add content to files while preserving existing data.\r\n\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: filesystem\r\n- Changes to: tools (added 2 new tools), core library functions, tests\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\n\r\nThe existing `write_file` tool always overwrites file content, which is problematic when users want to:\r\n- Add content to existing log files or documents\r\n- Incrementally build up file content\r\n- Preserve existing data while adding new information\r\n\r\nThese new tools solve this by providing:\r\n1. **append_file**: Safe appending to existing files (fails if file doesn't exist)\r\n2. **write_or_update_file**: Flexible create-or-append operation (creates if needed, appends if exists)\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\n\r\n- ✅ Tested with MCP client using local build\r\n- ✅ All unit tests pass (51/51)\r\n- ✅ Tested scenarios:\r\n  - Appending to existing files\r\n  - Creating new files with write_or_update_file\r\n  - Appending to existing files with write_or_update_file\r\n  - Error handling (file not found, permission errors)\r\n  - Atomic write operations with concurrent access\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\nNo breaking changes. These are new tools that don't affect existing functionality.\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n\r\n**Implementation details:**\r\n- Both functions use atomic write operations (temp file + rename) for safety\r\n- Follow existing patterns from the codebase for consistency\r\n- Proper error handling and cleanup of temporary files\r\n- Comprehensive test coverage added (6 new test cases)\r\n- Tool descriptions clearly explain use cases and differences\r\n",
      "created_at": "2025-10-03T15:51:07Z",
      "updated_at": "2026-02-13T08:35:56Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": "99387571d87c2877f0d21bfe308981a703404506",
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "agn-7:feat/filesystem-append-tools",
        "ref": "feat/filesystem-append-tools",
        "sha": "4d60d8febbab64d112930ff2f4626d1b306f934f",
        "user": {
          "login": "agn-7",
          "id": 14202344,
          "node_id": "MDQ6VXNlcjE0MjAyMzQ0",
          "avatar_url": "https://avatars.githubusercontent.com/u/14202344?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/agn-7",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1069208632,
          "node_id": "R_kgDOP7rUOA",
          "name": "servers",
          "full_name": "agn-7/servers",
          "private": false,
          "owner": {
            "login": "agn-7",
            "id": 14202344,
            "node_id": "MDQ6VXNlcjE0MjAyMzQ0",
            "avatar_url": "https://avatars.githubusercontent.com/u/14202344?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/agn-7",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/agn-7/servers",
          "created_at": "2025-10-03T15:10:48Z",
          "updated_at": "2025-10-03T15:10:48Z",
          "pushed_at": "2026-02-13T08:35:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28118,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "618cf4867bca1fa193553d94fb7f2b2cf47f2a04",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2816"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2816"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2816"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2816/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2816/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2816/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/4d60d8febbab64d112930ff2f4626d1b306f934f"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        2,
        2807
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2808",
      "id": 2881926511,
      "node_id": "PR_kwDONRaG_86rxrVv",
      "number": 2808,
      "state": "open",
      "locked": false,
      "title": "Fix the entity search by reversing includes call",
      "user": {
        "login": "jikanter",
        "id": 825376,
        "node_id": "MDQ6VXNlcjgyNTM3Ng==",
        "avatar_url": "https://avatars.githubusercontent.com/u/825376?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/jikanter",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\n\r\nIn main, entity search was broken, the \"includes\" call on line 151 should have called the method on the query with the argument of the entityName, not the reverse\r\n\r\nFrom the javascript docs:\r\n\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: memory\r\n- Changes to: bugfix for entity_search\r\n\r\n## Motivation and Context\r\nbugfix\r\n\r\n## How Has This Been Tested?\r\nYes, tested on Claude Desktop only. \"what do you know about elmo\", fix is only \r\n\r\n## Breaking Changes\r\nNo, just fixes the \"search_nodes\" tool call\r\n\r\n## Types of changes\r\n\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n\r\n\r\n## Checklist\r\n\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\nJust a bug fix\r\n",
      "created_at": "2025-10-02T14:07:05Z",
      "updated_at": "2025-11-25T21:56:21Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359496976,
          "node_id": "LA_kwDONRaG_88AAAAB8kPNEA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-memory",
          "name": "server-memory",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Memory MCP server - src/memory"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "jikanter:main",
        "ref": "main",
        "sha": "4227eefd0b6639aed4c57e418e123bef3fb2218a",
        "user": {
          "login": "jikanter",
          "id": 825376,
          "node_id": "MDQ6VXNlcjgyNTM3Ng==",
          "avatar_url": "https://avatars.githubusercontent.com/u/825376?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/jikanter",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 935025192,
          "node_id": "R_kgDON7taKA",
          "name": "servers",
          "full_name": "jikanter/servers",
          "private": false,
          "owner": {
            "login": "jikanter",
            "id": 825376,
            "node_id": "MDQ6VXNlcjgyNTM3Ng==",
            "avatar_url": "https://avatars.githubusercontent.com/u/825376?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/jikanter",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/jikanter/servers",
          "created_at": "2025-02-18T19:32:15Z",
          "updated_at": "2025-11-04T18:41:31Z",
          "pushed_at": "2025-11-04T18:41:25Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 26691,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "c7c549711b1577227d0ff8ff7c67fdbf7e4a0225",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2808"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2808"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2808"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2808/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2808/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2808/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/4227eefd0b6639aed4c57e418e123bef3fb2218a"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2619",
      "id": 2773812125,
      "node_id": "PR_kwDONRaG_86lVQOd",
      "number": 2619,
      "state": "open",
      "locked": false,
      "title": "feat(memory): add read_graph_summary function for efficient entity overview",
      "user": {
        "login": "nhickster",
        "id": 13138479,
        "node_id": "MDQ6VXNlcjEzMTM4NDc5",
        "avatar_url": "https://avatars.githubusercontent.com/u/13138479?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/nhickster",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\n\r\nAdd `read_graph_summary` function to the memory MCP server for efficient entity overview without loading the entire knowledge graph. This new function provides entity names, types, observation counts, and most recent observations while preserving full relation data, significantly reducing context usage for overview scenarios.\r\n\r\nThis allows LLMs to get an overview of the graph in order to make a better decisions about which entities to fully load into the context with `open_nodes`\r\n\r\n## Server Details\r\n- Server: memory\r\n- Changes to: tools (added new `read_graph_summary` tool)\r\n\r\n## Motivation and Context\r\nThe existing `read_graph` function returns complete entity data including all observations, which can become very large and consume significant context space when users only need an overview of their knowledge graph. This creates inefficiency when:\r\n\r\n- LLMs want to quickly scan what entities exist and their recent activity\r\n- LLM context is being consumed by large observation arrays\r\n- LLMs need to identify entities of interest before diving into full details\r\n\r\nThe `read_graph_summary` function solves this by providing:\r\n- Entity names and types for quick identification\r\n- Observation counts to understand data richness\r\n- Most recent observation for context about latest activity\r\n- All relations preserved for understanding connections\r\n\r\nLLMs can then use the existing `open_nodes` function to get full details for specific entities of interest.\r\n\r\n## How Has This Been Tested?\r\n\r\n**Comprehensive testing completed using VSCode with MCP integration:**\r\n\r\n1. **Functional Testing**:\r\n   - Created test entities with varying observation counts (3-24 observations)\r\n   - Verified correct entity summary structure (name, entityType, observationCount, lastObservation)\r\n   - Confirmed most recent observation is correctly identified and returned\r\n   - Tested with empty graph (returns empty arrays)\r\n\r\n2. **Performance Verification**:\r\n   - Tested with entity containing 24 observations\r\n   - `read_graph`: Returns full 24-observation array\r\n   - `read_graph_summary`: Returns count + last observation only\r\n\r\n3. **Integration Testing**:\r\n   - Verified tool registration in MCP protocol\r\n   - Confirmed proper JSON schema validation\r\n   - Tested workflow: `read_graph_summary` → identify entities → `open_nodes` for details\r\n\r\n4. **Edge Case Testing**:\r\n   - Empty entities arrays\r\n   - Entities with single observations\r\n   - Relations-only graphs\r\n\r\n## Breaking Changes\r\n**No breaking changes** - This is a purely additive feature that:\r\n- Adds a new optional tool (`read_graph_summary`)\r\n- Does not modify existing tool behavior\r\n- Maintains backward compatibility\r\n- Requires no configuration changes\r\n\r\n## Types of changes\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [x] Documentation update\r\n\r\n## Checklist\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n\r\n**Implementation Details:**\r\n- Uses existing `loadGraph()` infrastructure for consistency\r\n- Creates lightweight `EntitySummary` interface separate from full `Entity`\r\n- Preserves all relations unchanged for compatibility\r\n- Returns `KnowledgeGraphSummary` type for clear API contracts\r\n- Follows existing async/await patterns and error handling\r\n\r\n**Performance Benefits:**\r\n- Significant reduction in context usage for overview scenarios\r\n- Enables efficient \"browse then deep-dive\" workflows\r\n- Maintains full functionality through complementary tool usage\r\n- Zero performance impact on existing tools\r\n\r\n**Design Decision:**\r\n- Returns most recent observation rather than first/random to provide most current context\r\n- Includes observation count to help users understand data richness\r\n- Keeps relations unchanged to maintain graph connectivity information\r\n- Uses separate interface to clearly distinguish from full graph structure\r\n",
      "created_at": "2025-08-26T05:04:17Z",
      "updated_at": "2025-09-21T19:16:43Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {},
      "milestone": null,
      "draft": false,
      "head": {
        "label": "nhickster:memory-graph-summary",
        "ref": "memory-graph-summary",
        "sha": "17b130df6cc8388aa70caeda6cb3e9a7fd42cf59",
        "user": {
          "login": "nhickster",
          "id": 13138479,
          "node_id": "MDQ6VXNlcjEzMTM4NDc5",
          "avatar_url": "https://avatars.githubusercontent.com/u/13138479?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/nhickster",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1044028958,
          "node_id": "R_kgDOPjqeHg",
          "name": "mcp-servers",
          "full_name": "nhickster/mcp-servers",
          "private": false,
          "owner": {
            "login": "nhickster",
            "id": 13138479,
            "node_id": "MDQ6VXNlcjEzMTM4NDc5",
            "avatar_url": "https://avatars.githubusercontent.com/u/13138479?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/nhickster",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/nhickster/mcp-servers",
          "created_at": "2025-08-25T04:48:26Z",
          "updated_at": "2025-09-21T19:16:45Z",
          "pushed_at": "2025-09-21T19:16:41Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 26189,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "19534fa89b9d5c28ec09b46661c489d5bfd3d406",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2619"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2619"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2619"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2619/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2619/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2619/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/17b130df6cc8388aa70caeda6cb3e9a7fd42cf59"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2606",
      "id": 2768261981,
      "node_id": "PR_kwDONRaG_86lAFNd",
      "number": 2606,
      "state": "open",
      "locked": false,
      "title": "feat(search_files): clarify description and standardise implementation",
      "user": {
        "login": "domdomegg",
        "id": 4953590,
        "node_id": "MDQ6VXNlcjQ5NTM1OTA=",
        "avatar_url": "https://avatars.githubusercontent.com/u/4953590?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/domdomegg",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\n- Clarified search_files tool description to explicitly state it searches by filename patterns, not file content\n- Standardized implementation to use glob matching exclusively instead of mixing glob and substring matching\n- Updated tests to reflect the new consistent glob-only behavior\n\n## Changes\n- Modified pattern matching in `buildTree` to use only minimatch glob patterns\n- Updated search_files to accept array of patterns instead of single pattern for better flexibility\n- Adjusted test cases to use proper glob patterns (e.g., `**/node_modules` for nested directories)\n- Improved tool descriptions in the API to be clearer about glob pattern usage\n\nFixes #896",
      "created_at": "2025-08-23T06:51:21Z",
      "updated_at": "2025-09-29T11:52:29Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "modelcontextprotocol:adamj/search-files-clarify-implementation",
        "ref": "adamj/search-files-clarify-implementation",
        "sha": "ff4a7371e81ea478729fb3a42ba930eb357b7987",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "19534fa89b9d5c28ec09b46661c489d5bfd3d406",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2606"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2606"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2606"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2606/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2606/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2606/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/ff4a7371e81ea478729fb3a42ba930eb357b7987"
        }
      },
      "author_association": "MEMBER",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        8,
        896
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2603",
      "id": 2767148734,
      "node_id": "PR_kwDONRaG_86k71a-",
      "number": 2603,
      "state": "open",
      "locked": false,
      "title": "Fix filesystem server crashes on invalid paths with graceful validation",
      "user": {
        "login": "sebastien-rosset",
        "id": 16657278,
        "node_id": "MDQ6VXNlcjE2NjU3Mjc4",
        "avatar_url": "https://avatars.githubusercontent.com/u/16657278?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sebastien-rosset",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\n\r\nThis PR fixes filesystem server crashes when invalid or inaccessible paths are configured by implementing graceful path validation. The server now logs warnings for problematic paths at startup but continues running, allowing operations to retry at runtime when storage becomes available.\r\n\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: filesystem\r\n- Changes to: startup validation logic, path handling, error handling, logging\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\n\r\nAddresses GitHub issues #2113 and #2483. The filesystem server would crash immediately if any configured directory path was invalid, inaccessible, or pointed to a file instead of a directory. This was problematic for users with:\r\n\r\n- Network Attached Storage (NAS) that might be temporarily offline\r\n- VPN-mounted drives that connect after server startup  \r\n- USB/external drives that may not be connected at startup\r\n- Typos in path configuration\r\n- Directories that don't exist yet but will be created later\r\n\r\nThe original behavior provided a poor user experience and made the server fragile in dynamic storage environments.\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\n\r\n- [x] Tested with valid accessible directories (normal operation)\r\n- [x] Tested with non-existent paths (graceful warning, runtime retry)\r\n- [x] Tested with file paths instead of directories (proper skipping)\r\n- [x] Tested with mixed valid/invalid configurations\r\n- [x] Verified parallel validation performance with Promise.all\r\n- [x] Confirmed runtime operations work when storage becomes available\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\nNo breaking changes. This is backwards compatible - existing configurations continue to work. The only change is that invalid paths now generate warnings instead of crashes.\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)  \r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [ ] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [ ] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n\r\n**Implementation Details:**\r\n- Replaced sequential validation loop with `Promise.all` for better performance\r\n- Added clear comments explaining retry vs skip logic for different path types\r\n- Regular files are permanently excluded (can never become directories)\r\n- Symlinks and special files are included for runtime retry (NAS/VPN scenarios)\r\n- Inaccessible paths are included for runtime retry (network storage, permissions)\r\n\r\n**Design Philosophy:**\r\nThe new approach is optimistic about dynamic storage - we include paths that might become valid directories later while permanently excluding things that can never be directories. This balances robustness with usability for modern storage environments.",
      "created_at": "2025-08-22T19:13:07Z",
      "updated_at": "2025-08-24T02:31:14Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "sebastien-rosset:path_validation",
        "ref": "path_validation",
        "sha": "5786738f17ef159977b19a732d791aca41bb7b91",
        "user": {
          "login": "sebastien-rosset",
          "id": 16657278,
          "node_id": "MDQ6VXNlcjE2NjU3Mjc4",
          "avatar_url": "https://avatars.githubusercontent.com/u/16657278?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/sebastien-rosset",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 950133476,
          "node_id": "R_kgDOOKHi5A",
          "name": "modelcontextprotocol-servers",
          "full_name": "sebastien-rosset/modelcontextprotocol-servers",
          "private": false,
          "owner": {
            "login": "sebastien-rosset",
            "id": 16657278,
            "node_id": "MDQ6VXNlcjE2NjU3Mjc4",
            "avatar_url": "https://avatars.githubusercontent.com/u/16657278?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/sebastien-rosset",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/sebastien-rosset/modelcontextprotocol-servers",
          "created_at": "2025-03-17T17:22:11Z",
          "updated_at": "2025-08-26T18:10:28Z",
          "pushed_at": "2025-08-26T18:17:11Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 25954,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "2a4b7b0649734b75faf85f11c80277ddc31d2348",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2603"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2603"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2603"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2603/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2603/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2603/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/5786738f17ef159977b19a732d791aca41bb7b91"
        }
      },
      "author_association": "CONTRIBUTOR",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        2
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2568",
      "id": 2751405978,
      "node_id": "PR_kwDONRaG_86j_x-a",
      "number": 2568,
      "state": "open",
      "locked": false,
      "title": "Add host allowlisting and IP blocking to Fetch server",
      "user": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Implements security feature to prevent access to local/internal IP addresses by default. Addresses issue #2317.\r\n\r\n## Changes\r\n- Block access to private IP ranges by default\r\n- Add host allowlisting with wildcard support\r\n- Add configuration options for security customization\r\n- Implement socket-level validation to prevent TOCTOU attacks\r\n- Update documentation with security examples\r\n\r\nGenerated with [Claude Code](https://claude.ai/code)",
      "created_at": "2025-08-17T17:13:18Z",
      "updated_at": "2025-08-19T14:10:59Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {
        "0": {
          "login": "jenn-newton",
          "id": 153535757,
          "node_id": "U_kgDOCSbFDQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/153535757?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/jenn-newton",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "1": {
          "login": "dend",
          "id": 1389609,
          "node_id": "MDQ6VXNlcjEzODk2MDk=",
          "avatar_url": "https://avatars.githubusercontent.com/u/1389609?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/dend",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8359493310,
          "node_id": "LA_kwDONRaG_88AAAAB8kO-vg",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-fetch",
          "name": "server-fetch",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Fetch MCP server - src/fetch"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "modelcontextprotocol:claude/issue-2317-20250817-1707",
        "ref": "claude/issue-2317-20250817-1707",
        "sha": "d72c610cd9b818ed3a715b3ea9188f083e9e429d",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "bfa699fb8dc076ba5e62ac3d1330b8e94465e199",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2568"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2568"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2568"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2568/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2568/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2568/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/d72c610cd9b818ed3a715b3ea9188f083e9e429d"
        }
      },
      "author_association": "MEMBER",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        2
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2516",
      "id": 2732695756,
      "node_id": "PR_kwDONRaG_86i4aDM",
      "number": 2516,
      "state": "open",
      "locked": false,
      "title": "feat(filesystem): add streaming `get_file_hash` tool for cryptographic digests (md5/sha1/sha256)",
      "user": {
        "login": "Pucciano",
        "id": 8167234,
        "node_id": "MDQ6VXNlcjgxNjcyMzQ=",
        "avatar_url": "https://avatars.githubusercontent.com/u/8167234?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/Pucciano",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\nAdd a streaming file-hash tool to the filesystem server with Zod-validated\r\ninputs, allowed-roots enforcement, and optional digest encoding.\r\n\r\n## Description\r\n\r\nThis PR adds a new tool, `get_file_hash`, to the **filesystem** MCP server.\r\n\r\n- Computes cryptographic digests via Node `crypto.createHash` + streaming\r\n  `fs.createReadStream` (efficient on large files)\r\n- Supported algorithms (policy gate): `md5`, `sha1`, `sha256` (default: `sha256`)\r\n- Output encoding: `\"hex\"` (default) or `\"base64\"` (optional)\r\n- Rejects non-regular files (directories/devices); respects roots/realpath checks\r\n- Zod input schema + `ListTools` registration\r\n- README updated with a tool entry consistent with existing docs\r\n\r\n## Server Details\r\n- Server: **filesystem**\r\n- Changes to: **tools** (new tool), **unit tests** (new tests), **docs** (README tools section)\r\n\r\n## Motivation and Context\r\n\r\nI’m a computer forensics expert; verifying file integrity is critical to chain of\r\ncustody. Standards (e.g., ISO/IEC 27037, SWGDE) emphasize hashing digital evidence.\r\nNIST recommends collision-resistant hashes (SHA-2); SHA-1/MD5 remain for legacy\r\nidentification but not for collision-sensitive uses. This tool defaults to SHA-256\r\nwhile retaining MD5/SHA-1 for interoperability. Keeping the algorithm set small\r\nimproves DFIR compatibility and simplifies model prompts.\r\n\r\nProviding `get_file_hash` inside the filesystem server lets LLM-driven workflows\r\ncompute/compare hashes under the same allowed-roots and realpath/symlink controls\r\nas other file operations—no external copying, consistent and auditable results.\r\n\r\n## How Has This Been Tested?\r\n\r\n- **Environment:** macOS 15.5, LM Studio 0.3.22\r\n- **MCP client:** LM Studio (server built via Docker and used as a Docker-mapped\r\n  MCP server; tool discovered via `ListTools`)\r\n- **Models:**\r\n  - qwen/qwen3-coder-30b (benefits from explicit “when to use” + args in prompt)\r\n  - openai/gpt-oss-120b (works with concise descriptions)\r\n  - mistralai/devstral-small-2507 (tool calls succeed)\r\n- **Unit tests:** text vectors (`\"abc\"`, `\"ForensicShark\"`), small binary snippet,\r\n  encodings (hex/base64), non-regular paths rejected (dir/symlink/device), and\r\n  unsupported algorithms (e.g., `sha512`, `crc32`, `whirlpool`) rejected by policy\r\n- **Manual:** end-to-end via stdio within LM Studio; expected digests returned;\r\n  clear error on unavailable algorithms (FIPS/build)\r\n- **Platform note:** Not tested on Windows\r\n\r\n## Breaking Changes\r\nNone. Additive only.\r\n\r\n## Types of changes\r\n- [x] New feature (non-breaking)\r\n- [x] Documentation update\r\n- [ ] Bug fix\r\n- [ ] Breaking change\r\n\r\n## Checklist\r\n- [x] Follows MCP security best practices (roots-restricted, realpath/symlink checks)\r\n- [x] README updated (tool entry)\r\n- [x] Code follows repo style guidelines\r\n- [x] Appropriate error handling (unsupported algorithms / non-regular files)\r\n- [x] Inputs documented (path, algorithm, encoding)\r\n- [x] Tested with an LLM client (LM Studio)\r\n- [x] New and existing tests pass locally\r\n- [ ] CI not included in this PR (out of scope)\r\n\r\n## Additional context\r\n- Paths should be **relative to the allowed base directory** (as returned by\r\n  `list_directory`) when calling the tool from clients.\r\n- Tool description made concise and Qwen-friendly; instructs models to return\r\n  only the digest string.\r\n- Only `md5`, `sha1`, `sha256` are supported by design; no extended algorithms\r\n  or env toggles in this PR.\r\n",
      "created_at": "2025-08-09T14:32:51Z",
      "updated_at": "2025-08-13T12:58:37Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "Pucciano:get_file_hash",
        "ref": "get_file_hash",
        "sha": "dd3a0966f5c725088eb1f585a52ece21d0e84ae8",
        "user": {
          "login": "Pucciano",
          "id": 8167234,
          "node_id": "MDQ6VXNlcjgxNjcyMzQ=",
          "avatar_url": "https://avatars.githubusercontent.com/u/8167234?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/Pucciano",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1033295101,
          "node_id": "R_kgDOPZbU_Q",
          "name": "mcp-servers",
          "full_name": "Pucciano/mcp-servers",
          "private": false,
          "owner": {
            "login": "Pucciano",
            "id": 8167234,
            "node_id": "MDQ6VXNlcjgxNjcyMzQ=",
            "avatar_url": "https://avatars.githubusercontent.com/u/8167234?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/Pucciano",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/Pucciano/mcp-servers",
          "created_at": "2025-08-06T15:36:25Z",
          "updated_at": "2025-08-18T20:33:51Z",
          "pushed_at": "2025-08-18T20:33:41Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 25889,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "c9f7d0275c7edf17b057e700f4f7d6cad9befd4a",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2516"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2516"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2516"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2516/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2516/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2516/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/dd3a0966f5c725088eb1f585a52ece21d0e84ae8"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2310",
      "id": 2651133440,
      "node_id": "PR_kwDONRaG_86eBRYA",
      "number": 2310,
      "state": "open",
      "locked": false,
      "title": "Add get_node_relations function for efficient graph traversal",
      "user": {
        "login": "enthali",
        "id": 5298312,
        "node_id": "MDQ6VXNlcjUyOTgzMTI=",
        "avatar_url": "https://avatars.githubusercontent.com/u/5298312?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/enthali",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Summary\r\n\r\nThis PR adds a new `get_node_relations` function to the MCP memory server that enables efficient graph traversal by retrieving all incoming and outgoing relations for a specific node without loading the entire graph.\r\n\r\n## Changes\r\n\r\n- **New function**: `getNodeRelations` in `KnowledgeGraphManager` class\r\n- **New MCP tool**: `get_node_relations` exposed via the server API\r\n- **Documentation**: Updated `README.md` with API documentation for the new function\r\n- **Tool registration**: Added to `.github/mcp.json` for discoverability\r\n\r\n## Implementation Details\r\n\r\n### Input\r\n- `nodeName` (string): The name of the entity to get relations for\r\n\r\n### Output\r\n- `outgoing` (array): Relations where this node is the source\r\n- `incoming` (array): Relations where this node is the target  \r\n- `connected_entities` (string[]): Names of all connected entities\r\n\r\n### Use Cases\r\n- Graph traversal without loading entire graph\r\n- Finding connected entities efficiently\r\n- Building relationship maps for specific nodes\r\n- Performance optimization for large knowledge graphs\r\n\r\n## Testing\r\n\r\nThe implementation has been tested locally with:\r\n- Existing nodes with multiple relations\r\n- Nodes with no relations (returns empty arrays)\r\n- Non-existent nodes (returns empty structure)\r\n\r\n## Files Changed\r\n\r\n- `src/memory/index.ts`: Core implementation\r\n- `src/memory/README.md`: API documentation\r\n\r\nThis enhancement maintains backward compatibility and follows existing code patterns in the memory server.",
      "created_at": "2025-07-08T22:28:11Z",
      "updated_at": "2026-02-03T14:58:41Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8359496976,
          "node_id": "LA_kwDONRaG_88AAAAB8kPNEA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-memory",
          "name": "server-memory",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Memory MCP server - src/memory"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "enthali:feature/get-node-relations",
        "ref": "feature/get-node-relations",
        "sha": "3d9c98f5bd6cceff0a00d90f4a8e915d5f157574",
        "user": {
          "login": "enthali",
          "id": 5298312,
          "node_id": "MDQ6VXNlcjUyOTgzMTI=",
          "avatar_url": "https://avatars.githubusercontent.com/u/5298312?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/enthali",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1016357614,
          "node_id": "R_kgDOPJRi7g",
          "name": "servers",
          "full_name": "enthali/servers",
          "private": false,
          "owner": {
            "login": "enthali",
            "id": 5298312,
            "node_id": "MDQ6VXNlcjUyOTgzMTI=",
            "avatar_url": "https://avatars.githubusercontent.com/u/5298312?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/enthali",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/enthali/servers",
          "created_at": "2025-07-08T22:24:44Z",
          "updated_at": "2025-07-08T22:24:44Z",
          "pushed_at": "2025-07-08T23:46:41Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 4175,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "5a48c0bf06a40b0d4c2ea612b72bc0956e0d1cf8",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2310"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2310"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2310"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2310/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2310/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2310/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/3d9c98f5bd6cceff0a00d90f4a8e915d5f157574"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2205",
      "id": 2617851977,
      "node_id": "PR_kwDONRaG_86cCUBJ",
      "number": 2205,
      "state": "open",
      "locked": false,
      "title": "fix: Containers - Bind Mounts - Security and Compatibility (Docker / Podman / SELinux) for Fetch, Git, and Time Servers",
      "user": {
        "login": "trentapple",
        "id": 3402442,
        "node_id": "MDQ6VXNlcjM0MDI0NDI=",
        "avatar_url": "https://avatars.githubusercontent.com/u/3402442?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/trentapple",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "The following includes patches to docker files for existing servers.\r\n* fetch\r\n* git\r\n* time\r\n\r\n## Description\r\nUnshared and private label limiting access to only the current container on bind mount files (Z) referenced by Dockerfile RUN. This allows the container to be used with a podman and SELinux configuration. Without it, the build fails due to the security system (SELinux) blocking attempts to use bind mounted content /app/pyproject.toml (and eventually /app/uv.lock).\r\n\r\n**Resources:**\r\n- [https://developers.redhat.com/articles/2025/04/11/my-advice-selinux-container-labeling](https://developers.redhat.com/articles/2025/04/11/my-advice-selinux-container-labeling#2__run_container_with_a_private_volume_)\r\n- https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html#rule-6-use-linux-security-module-seccomp-apparmor-or-selinux\r\n- https://docs.docker.com/engine/storage/bind-mounts/#configure-the-selinux-label\r\n\r\n## Server Details\r\n- Server: fetch, git, time\r\n- Changes to: Dockerfile\r\n\r\n## Motivation and Context\r\nIt improves compatibility / accessibility and enables security enhancements for hardened container environments.\r\n\r\nUltimately, the motivation is to allow using MCP servers with docker / podman on hosts that have [SELinux container separation enabled and enforcing](https://developers.redhat.com/articles/2025/04/11/my-advice-selinux-container-labeling) (default for podman). See also: [rule 6 from OWASP security cheat sheet](https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html#rule-6-use-linux-security-module-seccomp-apparmor-or-selinux).\r\n\r\nAdditionally, one of the base images does not have the user / group “app” currently which is being used with a `--chown` that fails. This is secondary to the purpose of this PR, but `app:app` may need to exist in order for the build step to succeed in a fresh environment.\r\n\r\n## How Has This Been Tested?\r\nDocker / Podman build on the Dockerfile in question. Then the built images were run as integrations for a customized LLM client / frontend.\r\n\r\nUnder src/fetch directory\r\n`podman build -t mcp/fetch .`\r\n\r\nUnder src/time directory\r\n`podman build -t mcp/time .`\r\n\r\nUnder src/git directory\r\n`podman build -t mcp/git .`\r\n\r\nThe container build commands now succeed for docker / podman with security systems that are configured to handle containers.\r\n\r\n## Breaking Changes\r\nNo known / identified breaking changes.\r\n\r\n## Types of changes\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\nLLM client test done with [mcpo](https://github.com/open-webui/mcpo) Dockerfile that is setup to include the artifacts from the built mcp/time. Then this was included as a full OpenAPI spec in tools for the local LLM client in use (see screenshot for end result).\r\n![IMG_1081](https://github.com/user-attachments/assets/228bd28f-ac87-45d8-9a13-91158f924e67)\r\n\r\nFor the missing user/group scenario, consider approach from [DoD’s iron bank container for python312](https://repo1.dso.mil/dsop/opensource/python/python312/-/blob/development/Dockerfile?ref_type=heads#L72-73) which (at the time of writing this) explicitly creates a group / user with the ID (1001).",
      "created_at": "2025-06-25T11:07:29Z",
      "updated_at": "2025-07-11T15:28:42Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359493310,
          "node_id": "LA_kwDONRaG_88AAAAB8kO-vg",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-fetch",
          "name": "server-fetch",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Fetch MCP server - src/fetch"
        },
        "2": {
          "id": 8359493992,
          "node_id": "LA_kwDONRaG_88AAAAB8kPBaA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-git",
          "name": "server-git",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Git MCP server - src/git"
        },
        "3": {
          "id": 8359497353,
          "node_id": "LA_kwDONRaG_88AAAAB8kPOiQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-time",
          "name": "server-time",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Time MCP server - src/time"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "trentapple:main",
        "ref": "main",
        "sha": "4aa513cd1e0a2d6a776ccdf19909cb8d64c44a41",
        "user": {
          "login": "trentapple",
          "id": 3402442,
          "node_id": "MDQ6VXNlcjM0MDI0NDI=",
          "avatar_url": "https://avatars.githubusercontent.com/u/3402442?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/trentapple",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1008229827,
          "node_id": "R_kgDOPBhdww",
          "name": "mcp-servers",
          "full_name": "trentapple/mcp-servers",
          "private": false,
          "owner": {
            "login": "trentapple",
            "id": 3402442,
            "node_id": "MDQ6VXNlcjM0MDI0NDI=",
            "avatar_url": "https://avatars.githubusercontent.com/u/3402442?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/trentapple",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/trentapple/mcp-servers",
          "created_at": "2025-06-25T08:19:02Z",
          "updated_at": "2025-07-02T01:40:17Z",
          "pushed_at": "2025-07-02T01:40:12Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 3877,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "42f9c842c212377a2e9623ca3cd390ea9fff1d7a",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2205"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2205"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2205"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2205/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2205/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2205/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/4aa513cd1e0a2d6a776ccdf19909cb8d64c44a41"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        2
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2160",
      "id": 2603559156,
      "node_id": "PR_kwDONRaG_86bLyj0",
      "number": 2160,
      "state": "open",
      "locked": false,
      "title": "mcp-server-memory: use working directory for default path",
      "user": {
        "login": "solatis",
        "id": 119317,
        "node_id": "MDQ6VXNlcjExOTMxNw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/119317?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/solatis",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Changes the default behavior from using the installation path (which is not guaranteed to remain stable, e.g., when using npx) to the current working directory.\r\n\r\n## Description\r\n\r\n## Server Details\r\n- Server: memory\r\n- Changes to: default values\r\n\r\n## Motivation and Context\r\nIt's still difficult to properly pass-through environment variables using `mcp.json` files, even more so when they're based on the current working directory (non-static). \r\n\r\nWith this PR applied, the default location will be in whatever location I launch the tool that invokes it, which seems more reasonable a default.\r\n\r\n## How Has This Been Tested?\r\nI am using it with `aider`.\r\n\r\n## Breaking Changes\r\nThe previous default was non-stable to begin with (every upgrade would cause the entire memory to be lost), so impact is minimal.\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options",
      "created_at": "2025-06-19T04:42:21Z",
      "updated_at": "2025-08-26T14:53:59Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8359496976,
          "node_id": "LA_kwDONRaG_88AAAAB8kPNEA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-memory",
          "name": "server-memory",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Memory MCP server - src/memory"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "solatis:main",
        "ref": "main",
        "sha": "733a15c727d7e6bdf9802702144bb7adf6d60088",
        "user": {
          "login": "solatis",
          "id": 119317,
          "node_id": "MDQ6VXNlcjExOTMxNw==",
          "avatar_url": "https://avatars.githubusercontent.com/u/119317?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/solatis",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1004716044,
          "node_id": "R_kgDOO-LADA",
          "name": "mcp-servers",
          "full_name": "solatis/mcp-servers",
          "private": false,
          "owner": {
            "login": "solatis",
            "id": 119317,
            "node_id": "MDQ6VXNlcjExOTMxNw==",
            "avatar_url": "https://avatars.githubusercontent.com/u/119317?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/solatis",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/solatis/mcp-servers",
          "created_at": "2025-06-19T04:31:49Z",
          "updated_at": "2025-10-20T00:57:47Z",
          "pushed_at": "2025-08-26T14:53:58Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 25935,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 1,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 1,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "c8fe7d995b99fda79131d2d474422f12c1b3aa02",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2160"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2160"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2160"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2160/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2160/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2160/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/733a15c727d7e6bdf9802702144bb7adf6d60088"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2115",
      "id": 2594621983,
      "node_id": "PR_kwDONRaG_86apsof",
      "number": 2115,
      "state": "open",
      "locked": false,
      "title": "Add line limits and env variable configs",
      "user": {
        "login": "olaservo",
        "id": 16480113,
        "node_id": "MDQ6VXNlcjE2NDgwMTEz",
        "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/olaservo",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\n\r\n## Server Details\r\n- Server: filesystem\r\n- Changes to: tools\r\n\r\n## Motivation and Context\r\nThere were some followups needed from this older PR: https://github.com/modelcontextprotocol/servers/pull/1027\r\n\r\n## How Has This Been Tested?\r\nWill add tests after this jest setup is merged: https://github.com/modelcontextprotocol/servers/pull/1405\r\n\r\n## Breaking Changes\r\nNone\r\n\r\n## Types of changes\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n- [ ] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [ ] My changes follows MCP security best practices\r\n- [ ] I have updated the server's README accordingly\r\n- [ ] I have tested this with an LLM client\r\n- [ ] My code follows the repository's style guidelines\r\n- [ ] New and existing tests pass locally\r\n- [ ] I have added appropriate error handling\r\n- [ ] I have documented all environment variables and configuration options\r\n",
      "created_at": "2025-06-16T06:43:17Z",
      "updated_at": "2025-08-26T14:58:52Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "milestone": null,
      "draft": true,
      "head": {
        "label": "olaservo:filesystem-followups",
        "ref": "filesystem-followups",
        "sha": "0b32691ab3db966dec5874db33fea67aa97c661e",
        "user": {
          "login": "olaservo",
          "id": 16480113,
          "node_id": "MDQ6VXNlcjE2NDgwMTEz",
          "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/olaservo",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 932850603,
          "node_id": "R_kgDON5orqw",
          "name": "servers",
          "full_name": "olaservo/servers",
          "private": false,
          "owner": {
            "login": "olaservo",
            "id": 16480113,
            "node_id": "MDQ6VXNlcjE2NDgwMTEz",
            "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/olaservo",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/olaservo/servers",
          "created_at": "2025-02-14T16:28:20Z",
          "updated_at": "2026-01-24T17:22:39Z",
          "pushed_at": "2026-02-13T02:11:23Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28269,
          "stargazers_count": 1,
          "watchers_count": 1,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 1,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "fcb550ec3d66170ddf371fb18dd7f10508cc2f38",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2115"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2115"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2115"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2115/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2115/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2115/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/0b32691ab3db966dec5874db33fea67aa97c661e"
        }
      },
      "author_association": "MEMBER",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2102",
      "id": 2590459302,
      "node_id": "PR_kwDONRaG_86aZ0Wm",
      "number": 2102,
      "state": "open",
      "locked": false,
      "title": "feat(filesystem): add read_file_lines",
      "user": {
        "login": "altrao",
        "id": 30178618,
        "node_id": "MDQ6VXNlcjMwMTc4NjE4",
        "avatar_url": "https://avatars.githubusercontent.com/u/30178618?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/altrao",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\n- read_file_lines: Reads specific lines from files with offset/limit\r\n\r\n## Server Details\r\n- Server: filesystem\r\n- Changes to: tools\r\n\r\n## Motivation and Context\r\nAllows partial reading of files by specifying an offset and a limit when the whole file content isn't necessary.\r\n\r\n## How Has This Been Tested?\r\nTesting completed for read_file_lines:\r\n1. Basic functionality:\r\n   - [x] Various offsets and limits\r\n2. Security boundaries:\r\n   - [x] Only works in allowed dir\r\n3. Edge cases:\r\n   - [x] Empty files\r\n   - [x] Offsets beyond file length\r\n   - [x] Large limits\r\n   - [x] Negative offset\r\n   - [x] Negative limit\r\n   - [x] Special characters in filenames\r\n   - [x] Large files (high line numbers)\r\n   - [x] Different file formats\r\n4. Error handling:\r\n   - [x] Invalid paths (proper error returned)\r\n   - [x] Invalid parameters (proper validation)\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [x] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modlcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\nThe implementation uses `readline`.`craeteInterface` and `fs/promise`.`FileHandle`.`createReadStream` for reading file's content with a stream. Please take a look at that and bring up any concern. Node isn't my safe zone but I tried handling it with some performance concerns in mind.\r\n",
      "created_at": "2025-06-13T14:34:06Z",
      "updated_at": "2026-02-03T14:56:34Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "altrao:read-file-lines",
        "ref": "read-file-lines",
        "sha": "045c9a15d0cd3529168334d2b742180dc88118b4",
        "user": {
          "login": "altrao",
          "id": 30178618,
          "node_id": "MDQ6VXNlcjMwMTc4NjE4",
          "avatar_url": "https://avatars.githubusercontent.com/u/30178618?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/altrao",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1000978684,
          "node_id": "R_kgDOO6m4_A",
          "name": "servers",
          "full_name": "altrao/servers",
          "private": false,
          "owner": {
            "login": "altrao",
            "id": 30178618,
            "node_id": "MDQ6VXNlcjMwMTc4NjE4",
            "avatar_url": "https://avatars.githubusercontent.com/u/30178618?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/altrao",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/altrao/servers",
          "created_at": "2025-06-12T16:04:48Z",
          "updated_at": "2025-06-12T16:04:48Z",
          "pushed_at": "2025-07-28T15:23:42Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 25328,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "eff333ab752b4fd473c185cf7172cf3619103488",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2102"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2102"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2102"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2102/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2102/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2102/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/045c9a15d0cd3529168334d2b742180dc88118b4"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2093",
      "id": 2587935442,
      "node_id": "PR_kwDONRaG_86aQMLS",
      "number": 2093,
      "state": "open",
      "locked": false,
      "title": "feat(filesystem): add append_file",
      "user": {
        "login": "altrao",
        "id": 30178618,
        "node_id": "MDQ6VXNlcjMwMTc4NjE4",
        "avatar_url": "https://avatars.githubusercontent.com/u/30178618?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/altrao",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\nAdded append_file capability to filesystem server:\r\n- Appends content to existing files or creates new files\r\n\r\n## Server Details\r\n- Server: filesystem\r\n- Changes to: tools\r\n\r\n## Motivation and Context\r\nNeed to provide log-style file operations for LLM clients:\r\n- append_file enables incremental writes without full file rewrites\r\n\r\n## How Has This Been Tested?\r\nTesting performed for append_file:\r\n1. Basic functionality:\r\n   - Append to existing files\r\n   - Append to new files (creates file)\r\n2. Security boundaries:\r\n   - Works in allowed dir\r\n   - Fails in not specified dir\r\n3. Edge cases:\r\n   - Empty files\r\n   - Large content appends\r\n   - Empty append to new file (creates empty file)\r\n   - Empty append to existing file (maintains empty state)\r\n4. Error handling:\r\n   - Invalid paths\r\n   - Permission issues\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [x] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2025-06-12T16:34:31Z",
      "updated_at": "2026-02-03T15:03:39Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "altrao:append-file",
        "ref": "append-file",
        "sha": "6c93529435a91708737804ee3d030257aa7a2f08",
        "user": {
          "login": "altrao",
          "id": 30178618,
          "node_id": "MDQ6VXNlcjMwMTc4NjE4",
          "avatar_url": "https://avatars.githubusercontent.com/u/30178618?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/altrao",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 1000978684,
          "node_id": "R_kgDOO6m4_A",
          "name": "servers",
          "full_name": "altrao/servers",
          "private": false,
          "owner": {
            "login": "altrao",
            "id": 30178618,
            "node_id": "MDQ6VXNlcjMwMTc4NjE4",
            "avatar_url": "https://avatars.githubusercontent.com/u/30178618?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/altrao",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/altrao/servers",
          "created_at": "2025-06-12T16:04:48Z",
          "updated_at": "2025-06-12T16:04:48Z",
          "pushed_at": "2025-07-28T15:23:42Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 25328,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "eff333ab752b4fd473c185cf7172cf3619103488",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2093"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/2093"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2093"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/2093/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2093/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/2093/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/6c93529435a91708737804ee3d030257aa7a2f08"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1999",
      "id": 2562504683,
      "node_id": "PR_kwDONRaG_86YvLfr",
      "number": 1999,
      "state": "open",
      "locked": false,
      "title": "Fix/unicode normalization clean",
      "user": {
        "login": "muthub-ai",
        "id": 21083327,
        "node_id": "MDQ6VXNlcjIxMDgzMzI3",
        "avatar_url": "https://avatars.githubusercontent.com/u/21083327?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/muthub-ai",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\n\r\nTitle:\r\nfix: Unicode normalization for macOS screenshot files and Unicode filenames\r\n\r\n\r\n\r\n## Summary\r\n\r\n- All file operations now normalize Unicode in file paths (NFC, non-breaking space, special Unicode punctuation)\r\n- Fixes ENOENT errors for macOS screenshot files and similar Unicode edge cases\r\n- Adds excellent comments explaining rationale and edge cases\r\n- Documents change and test results in README and PR_TEST_RESULTS.md\r\n- All tests (create, move, read, list) pass for both normal and non-breaking space filenames\r\n- See PR_TEST_RESULTS.md for full test evidence.\r\n\r\n## Description\r\nSee PR_TEST_RESULTS.md for full test evidence.\r\n### Unicode Normalization for File Operations\r\nAdded a [sanitizeFilePath](https://musical-disco-q7wjww6rr6rf6x5g.github.dev/) utility in [index.ts](https://musical-disco-q7wjww6rr6rf6x5g.github.dev/) that:\r\nNormalizes all file paths to Unicode NFC form.\r\nReplaces non-breaking spaces (U+00A0) with regular spaces.\r\nReplaces a range of special Unicode spaces and punctuation that can appear in macOS screenshot filenames and other OS-generated files.\r\nIntegrated this normalization into all file operations by calling [sanitizeFilePath](https://musical-disco-q7wjww6rr6rf6x5g.github.dev/) in the [validatePath](https://musical-disco-q7wjww6rr6rf6x5g.github.dev/) function, ensuring every file operation (move, read, etc.) is robust against Unicode edge cases.\r\n\r\n## Server Details\r\n\r\nServer: filesystem\r\n\r\nChanges to:\r\n\r\n1. Core file path handling logic (Unicode normalization in all file operations)\r\n2. Documentation (README.md, new PR_TEST_RESULTS.md)\r\n3. Code comments (improved clarity and rationale in index.ts)\r\n\r\n## Motivation and Context\r\nManual drag-and-drop in Finder\r\nRename files to simpler names first\r\nUse Terminal with shell globbing: mv Screenshot*.png ./Images/\r\n\r\n## How Has This Been Tested?\r\nTest results attached in results.md. tested with Claude and Gemini\r\n\r\n## Breaking Changes\r\nNo\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ x] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [ x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [ x] My changes follows MCP security best practices\r\n- [ x] I have updated the server's README accordingly\r\n- [x ] I have tested this with an LLM client\r\n- [x ] My code follows the repository's style guidelines\r\n- [ x] New and existing tests pass locally\r\n- [x ] I have added appropriate error handling\r\n- [x ] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2025-06-03T03:58:35Z",
      "updated_at": "2025-06-13T04:06:52Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "muthub-ai:fix/unicode-normalization-clean",
        "ref": "fix/unicode-normalization-clean",
        "sha": "c6031a97f3e912da0e0d5bebfa920bf5a94a3552",
        "user": {
          "login": "muthub-ai",
          "id": 21083327,
          "node_id": "MDQ6VXNlcjIxMDgzMzI3",
          "avatar_url": "https://avatars.githubusercontent.com/u/21083327?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/muthub-ai",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 995061674,
          "node_id": "R_kgDOO09vqg",
          "name": "mcp-servers",
          "full_name": "muthub-ai/mcp-servers",
          "private": false,
          "owner": {
            "login": "muthub-ai",
            "id": 21083327,
            "node_id": "MDQ6VXNlcjIxMDgzMzI3",
            "avatar_url": "https://avatars.githubusercontent.com/u/21083327?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/muthub-ai",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/muthub-ai/mcp-servers",
          "created_at": "2025-06-02T23:01:35Z",
          "updated_at": "2025-06-14T05:37:41Z",
          "pushed_at": "2025-06-04T04:02:26Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 3471,
          "stargazers_count": 2,
          "watchers_count": 2,
          "language": "Python",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 2,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "2aa85c2563d4bc191e03bb7b72e7e16209f79a17",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1999"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/1999"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1999"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1999/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1999/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1999/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/c6031a97f3e912da0e0d5bebfa920bf5a94a3552"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1923",
      "id": 2546500453,
      "node_id": "PR_kwDONRaG_86XyINl",
      "number": 1923,
      "state": "open",
      "locked": false,
      "title": "feat: add git_pull tool support and cursor usage",
      "user": {
        "login": "majinghe",
        "id": 42570491,
        "node_id": "MDQ6VXNlcjQyNTcwNDkx",
        "avatar_url": "https://avatars.githubusercontent.com/u/42570491?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/majinghe",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\n\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server:  Git\r\n- Changes to:  add `git_pull` tool support and cursor usage.\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [x] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2025-05-27T13:25:51Z",
      "updated_at": "2025-12-15T13:11:44Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8359493992,
          "node_id": "LA_kwDONRaG_88AAAAB8kPBaA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-git",
          "name": "server-git",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Git MCP server - src/git"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "majinghe:feat-git-pull",
        "ref": "feat-git-pull",
        "sha": "6fdbba264813017303c7bb570bb384f51bcf65a2",
        "user": {
          "login": "majinghe",
          "id": 42570491,
          "node_id": "MDQ6VXNlcjQyNTcwNDkx",
          "avatar_url": "https://avatars.githubusercontent.com/u/42570491?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/majinghe",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 967310426,
          "node_id": "R_kgDOOaf8Wg",
          "name": "servers",
          "full_name": "majinghe/servers",
          "private": false,
          "owner": {
            "login": "majinghe",
            "id": 42570491,
            "node_id": "MDQ6VXNlcjQyNTcwNDkx",
            "avatar_url": "https://avatars.githubusercontent.com/u/42570491?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/majinghe",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/majinghe/servers",
          "created_at": "2025-04-16T09:00:01Z",
          "updated_at": "2025-05-27T11:27:48Z",
          "pushed_at": "2025-05-27T13:24:06Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 3345,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "JavaScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "6f920efa8aaa03b88260a7ac32175f76c8f4205f",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1923"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/1923"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1923"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1923/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1923/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1923/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/6fdbba264813017303c7bb570bb384f51bcf65a2"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1901",
      "id": 2541690469,
      "node_id": "PR_kwDONRaG_86Xfx5l",
      "number": 1901,
      "state": "open",
      "locked": false,
      "title": "feat(filesystem): add --ignore-write option to block writes to sensit…",
      "user": {
        "login": "SOURABHMISHRA5221",
        "id": 79500203,
        "node_id": "MDQ6VXNlcjc5NTAwMjAz",
        "avatar_url": "https://avatars.githubusercontent.com/u/79500203?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/SOURABHMISHRA5221",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Title:\r\nfeat(filesystem): add --ignore-write option to block writes to sensitive files (#1869)\r\n\r\nDescription:\r\nThis PR addresses [issue #1869](https://github.com/modelcontextprotocol/servers/issues/1869) by adding a flexible mechanism to prevent accidental overwrites of sensitive files (such as `.env`) in the Filesystem MCP server.\r\n\r\nSummary of changes:\r\n- Added a `--ignore-write <pattern1> <pattern2> ...` command-line argument to the filesystem server.\r\n- The server now blocks write operations to any file matching the provided patterns (supports globs like `.env`, `.env.*`, `*.secret`, etc.), even if the file is within an allowed directory.\r\n- Updated the README.md to document the new option and provide usage examples.\r\n- Improved security and user control over which files are protected from write operations.\r\n\r\nMotivation:\r\nPreviously, the server could overwrite sensitive files (e.g., `.env`) without confirmation, risking data loss. This change allows users to specify which files should never be overwritten, improving safety and flexibility.\r\n\r\nTesting:\r\n- Manually tested with various ignore patterns and confirmed that write operations to matching files are blocked with an appropriate error.\r\n- Verified that normal write operations to non-matching files still succeed.\r\n\r\nDocumentation:\r\n- Updated README.md with usage instructions and security notes for the new `--ignore-write` option.\r\n\r\nChecklist:\r\n- [x] Thoroughly tested changes\r\n- [x] Documentation updated\r\n- [x] Linked to issue #1869\r\n- [x] No breaking changes",
      "created_at": "2025-05-24T12:02:50Z",
      "updated_at": "2025-08-02T15:17:31Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "SOURABHMISHRA5221:feat/filesystem-ignore-write",
        "ref": "feat/filesystem-ignore-write",
        "sha": "b7bf0703d80fa5ce218119bf0739f677076fa4e1",
        "user": {
          "login": "SOURABHMISHRA5221",
          "id": 79500203,
          "node_id": "MDQ6VXNlcjc5NTAwMjAz",
          "avatar_url": "https://avatars.githubusercontent.com/u/79500203?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/SOURABHMISHRA5221",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 989583966,
          "node_id": "R_kgDOOvvaXg",
          "name": "servers",
          "full_name": "SOURABHMISHRA5221/servers",
          "private": false,
          "owner": {
            "login": "SOURABHMISHRA5221",
            "id": 79500203,
            "node_id": "MDQ6VXNlcjc5NTAwMjAz",
            "avatar_url": "https://avatars.githubusercontent.com/u/79500203?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/SOURABHMISHRA5221",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/SOURABHMISHRA5221/servers",
          "created_at": "2025-05-24T11:57:05Z",
          "updated_at": "2025-05-24T11:57:06Z",
          "pushed_at": "2025-08-02T15:17:29Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 25543,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "a86312525b0e0f98c59060ae687c34af282151a7",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1901"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/1901"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1901"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1901/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1901/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1901/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/b7bf0703d80fa5ce218119bf0739f677076fa4e1"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        1
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1789",
      "id": 2519989114,
      "node_id": "PR_kwDONRaG_86WM_t6",
      "number": 1789,
      "state": "open",
      "locked": false,
      "title": "Fix issue #1770 where paths with hyphens in filesystem server were incorrectly interpreted as command-line flags.",
      "user": {
        "login": "andrasfe",
        "id": 3201560,
        "node_id": "MDQ6VXNlcjMyMDE1NjA=",
        "avatar_url": "https://avatars.githubusercontent.com/u/3201560?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/andrasfe",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\nFix issue #1770 where paths with hyphens in filesystem server were incorrectly interpreted as command-line flags.\r\n\r\n## Server Details\r\n- Server: filesystem\r\n- Changes to: command-line argument handling, path processing\r\n\r\n## Motivation and Context\r\nThe filesystem server was incorrectly interpreting paths with hyphens as command-line options, leading to errors when users tried to access directories or files with hyphens in their paths. This fix ensures that hyphenated paths are handled correctly.\r\n\r\n## How Has This Been Tested?\r\n- Tested with directories containing hyphens in their paths (e.g., \"sum-delme\")\r\n- Verified directory listing works correctly with hyphenated paths\r\n- Created test files to confirm proper path handling\r\n- Verified Docker deployment works with hyphenated paths\r\n\r\n## Breaking Changes\r\nNone. This is a backward-compatible bug fix that improves handling of paths with hyphens.\r\n\r\n## Types of changes\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly (no changes needed as API remains the same)\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options (no changes needed)\r\n\r\n## Additional context\r\nThe fix implements a more robust approach to command-line argument parsing by:\r\n1. Filtering out arguments starting with '-' since they would be interpreted as flags\r\n2. Improving path normalization using Node.js native path functions\r\n3. Enhancing type safety with better TypeScript annotations\r\n\r\nThis ensures that paths with hyphens are correctly processed without affecting other functionality.",
      "created_at": "2025-05-14T17:52:59Z",
      "updated_at": "2025-06-17T14:22:30Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "andrasfe:fix-hyphen-paths",
        "ref": "fix-hyphen-paths",
        "sha": "1472ccf3ae6ed8408888e5b80fc806c91df25e58",
        "user": {
          "login": "andrasfe",
          "id": 3201560,
          "node_id": "MDQ6VXNlcjMyMDE1NjA=",
          "avatar_url": "https://avatars.githubusercontent.com/u/3201560?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/andrasfe",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 983259789,
          "node_id": "R_kgDOOptajQ",
          "name": "servers",
          "full_name": "andrasfe/servers",
          "private": false,
          "owner": {
            "login": "andrasfe",
            "id": 3201560,
            "node_id": "MDQ6VXNlcjMyMDE1NjA=",
            "avatar_url": "https://avatars.githubusercontent.com/u/3201560?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/andrasfe",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/andrasfe/servers",
          "created_at": "2025-05-14T05:55:04Z",
          "updated_at": "2025-06-21T22:41:57Z",
          "pushed_at": "2025-06-21T23:15:52Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 3725,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "JavaScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "81b9fbff4b01f8632956e3d1897dd70772176858",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1789"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/1789"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1789"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1789/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1789/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1789/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/1472ccf3ae6ed8408888e5b80fc806c91df25e58"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        1
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1769",
      "id": 2517857070,
      "node_id": "PR_kwDONRaG_86WE3Mu",
      "number": 1769,
      "state": "open",
      "locked": false,
      "title": "Optimize Memory Search: Normalize entity names and observation contents to lowercase on add, create and delete for consistent comparisons",
      "user": {
        "login": "bernoussama",
        "id": 96293508,
        "node_id": "U_kgDOBb1ShA",
        "avatar_url": "https://avatars.githubusercontent.com/u/96293508?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/bernoussama",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\nNormalized entity and relation properties to lowercase before saving to ensure consistent search behavior in the knowledge graph. This prevents duplicate entries that differ only by case and improves search accuracy.\r\n\r\n## Server Details\r\n- Server: memory\r\n- Changes to: tools (knowledge graph functionality)\r\n\r\n## Motivation and Context\r\nUnnecessary Normalizing to lowercase on each call to `searchNodes` function. This change ensures all entity and relation properties are consistently stored in lowercase format, improving data integrity and search reliability.\r\n\r\n## How Has This Been Tested?\r\nNot tested\r\n\r\n## Breaking Changes\r\nNo breaking changes. This is a non-breaking improvement to internal data handling.\r\n\r\n## Types of changes\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n\r\n## Checklist\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n\r\n## Additional context\r\nThis change affects how entity and relation data is stored internally but maintains backward compatibility with existing client interactions. The normalized approach provides more consistent behavior for user queries.",
      "created_at": "2025-05-13T23:54:57Z",
      "updated_at": "2025-11-25T21:40:37Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8359496976,
          "node_id": "LA_kwDONRaG_88AAAAB8kPNEA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-memory",
          "name": "server-memory",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Memory MCP server - src/memory"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "bernoussama:optimize-memory-search",
        "ref": "optimize-memory-search",
        "sha": "fe8c096254b705be8054bc6a50d30463dbb6efa1",
        "user": {
          "login": "bernoussama",
          "id": 96293508,
          "node_id": "U_kgDOBb1ShA",
          "avatar_url": "https://avatars.githubusercontent.com/u/96293508?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/bernoussama",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 983116268,
          "node_id": "R_kgDOOpkp7A",
          "name": "servers",
          "full_name": "bernoussama/servers",
          "private": false,
          "owner": {
            "login": "bernoussama",
            "id": 96293508,
            "node_id": "U_kgDOBb1ShA",
            "avatar_url": "https://avatars.githubusercontent.com/u/96293508?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/bernoussama",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/bernoussama/servers",
          "created_at": "2025-05-13T22:49:32Z",
          "updated_at": "2025-05-13T22:49:32Z",
          "pushed_at": "2025-05-13T23:52:09Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 3068,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": null,
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "240dd469a6a0fd1da9f20b3b50c2d119c4d93856",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1769"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/1769"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1769"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1769/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1769/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1769/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/fe8c096254b705be8054bc6a50d30463dbb6efa1"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1709",
      "id": 2506872193,
      "node_id": "PR_kwDONRaG_86Va9WB",
      "number": 1709,
      "state": "open",
      "locked": false,
      "title": "Solve the issue of FileSystem when the requestedPath is similar to 'X:\\' on Windows which causes an exception",
      "user": {
        "login": "scalpelx",
        "id": 12198804,
        "node_id": "MDQ6VXNlcjEyMTk4ODA0",
        "avatar_url": "https://avatars.githubusercontent.com/u/12198804?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/scalpelx",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "<!-- Provide a brief description of your changes -->\r\n\r\n## Description\r\nAdd a function when get the realpath of a path like 'X:\\\\' on Windows, add a  trailing '\\\\' in the last.\r\n## Server Details\r\n<!-- If modifying an existing server, provide details -->\r\n- Server: filesystem\r\n- Changes to: tools (added getConsistentRealPath function)\r\n\r\n## Motivation and Context\r\n<!-- Why is this change needed? What problem does it solve? -->\r\nOn Windows when the requestedPath is similar to 'X:\\\\', the realpath function removes the trailing '\\\\', causing the normalizePath function to return 'X:.', which leads to the requestedPath being judged as not in allowedDirectories, resulting in an exception.\r\n![image](https://github.com/user-attachments/assets/09e17815-864b-4074-bbac-e3473e4b37f0)\r\n\r\n## How Has This Been Tested?\r\n<!-- Have you tested this with an LLM client? Which scenarios were tested? -->\r\nYes\r\n![image](https://github.com/user-attachments/assets/1fa4364b-f71e-4683-ab1a-3892b93dd278)\r\n\r\n## Breaking Changes\r\n<!-- Will users need to update their MCP client configurations? -->\r\nNo\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n<!-- Add any other context, implementation notes, or design decisions -->\r\n",
      "created_at": "2025-05-08T11:43:34Z",
      "updated_at": "2025-07-08T03:47:38Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "scalpelx:main",
        "ref": "main",
        "sha": "8fb1e351ededdfcca464cc460b5807564e6028b3",
        "user": {
          "login": "scalpelx",
          "id": 12198804,
          "node_id": "MDQ6VXNlcjEyMTk4ODA0",
          "avatar_url": "https://avatars.githubusercontent.com/u/12198804?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/scalpelx",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 979970588,
          "node_id": "R_kgDOOmkqHA",
          "name": "servers",
          "full_name": "scalpelx/servers",
          "private": false,
          "owner": {
            "login": "scalpelx",
            "id": 12198804,
            "node_id": "MDQ6VXNlcjEyMTk4ODA0",
            "avatar_url": "https://avatars.githubusercontent.com/u/12198804?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/scalpelx",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/scalpelx/servers",
          "created_at": "2025-05-08T11:03:53Z",
          "updated_at": "2025-07-08T03:48:17Z",
          "pushed_at": "2025-07-08T03:47:36Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 4015,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "5a48c0bf06a40b0d4c2ea612b72bc0956e0d1cf8",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1709"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/1709"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1709"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1709/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1709/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1709/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/8fb1e351ededdfcca464cc460b5807564e6028b3"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1233",
      "id": 2437078849,
      "node_id": "PR_kwDONRaG_86RQt9B",
      "number": 1233,
      "state": "open",
      "locked": false,
      "title": "feat: add append_file tool to prevent errors caused by too long content",
      "user": {
        "login": "gloridea",
        "id": 322413,
        "node_id": "MDQ6VXNlcjMyMjQxMw==",
        "avatar_url": "https://avatars.githubusercontent.com/u/322413?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/gloridea",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "Sometimes LLM generates long file contents that need to be generated in multiple consecutive responses. \r\nHowever, the write_file tool supports write-at-once only. So the write_file call with long response not applied to file content, because it is not properly closed, and it makes repeating file write failure.\r\n\r\nSo I made the following changes:\r\n- added append_file tool, and its prompt\r\n- updated the edit_file prompt to help LLM understand when to use it better\r\n\r\n## Description\r\n\r\n## Server Details\r\n- Server: filesystem\r\n- Changes to: tools, prompts\r\n\r\n## Motivation and Context\r\nI asked Calude Desktop to write a markdown file that contains a wide business research (total output was almost 24kB). While Claude Desktop trying to write the file, it failed repeatedly because Clauded encountered the output limit, so the write_file request is not closed successfuly.\r\n\r\n\r\n## How Has This Been Tested?\r\nAfter I add this append_file, I ran filesystem mcp server locally again, restarted Claude Desktop, and asked to do the same operation, and Claude did it well by using new tools.\r\n\r\n## Breaking Changes\r\nNot at all.\r\n\r\n## Types of changes\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [x] Documentation update\r\n\r\n## Checklist\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally - no test code exists, so created temporal test codes but not committed the test codes.\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n",
      "created_at": "2025-04-03T13:36:30Z",
      "updated_at": "2025-04-18T15:30:26Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "gloridea:main",
        "ref": "main",
        "sha": "8b9ba5b9d75e43e5b3ced021a13d089a9fd48922",
        "user": {
          "login": "gloridea",
          "id": 322413,
          "node_id": "MDQ6VXNlcjMyMjQxMw==",
          "avatar_url": "https://avatars.githubusercontent.com/u/322413?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/gloridea",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 959805936,
          "node_id": "R_kgDOOTV58A",
          "name": "mcp-servers",
          "full_name": "gloridea/mcp-servers",
          "private": false,
          "owner": {
            "login": "gloridea",
            "id": 322413,
            "node_id": "MDQ6VXNlcjMyMjQxMw==",
            "avatar_url": "https://avatars.githubusercontent.com/u/322413?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/gloridea",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers Fork",
          "fork": true,
          "url": "https://api.github.com/repos/gloridea/mcp-servers",
          "created_at": "2025-04-03T11:35:16Z",
          "updated_at": "2025-04-03T13:35:18Z",
          "pushed_at": "2025-04-03T13:35:15Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 2278,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "JavaScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "ed96303a0a26fbecdd0fd22c7b8abac41fa3d6b4",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1233"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/1233"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1233"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/1233/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1233/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/1233/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/8b9ba5b9d75e43e5b3ced021a13d089a9fd48922"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": []
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/897",
      "id": 2399065568,
      "node_id": "PR_kwDONRaG_86O_tXg",
      "number": 897,
      "state": "open",
      "locked": false,
      "title": "Rename \"search_files\" to \"search_files_by_name\"",
      "user": {
        "login": "sebastien-rosset",
        "id": 16657278,
        "node_id": "MDQ6VXNlcjE2NjU3Mjc4",
        "avatar_url": "https://avatars.githubusercontent.com/u/16657278?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sebastien-rosset",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "## Description\r\n\r\n1. Fix #896: \"Search file by name\" enhancements\r\n   1. Rename the existing `search_files` function to `search_files_by_name`\r\n   2. Improve performance for deeply nested directories by processing directories in parallel batches.\r\n   3. Improve description to make it clear it's a file/directory name matcher, not a file content search.\r\n   4. Improve error handling\r\n2. Add new `search_file_contents` to search file content.\r\n   1. Plain text or regex pattern matching\r\n   2. Case-sensitive/insensitive search\r\n   3. Configurable result limits\r\n   4. Context lines around matches\r\n   5. File glob filtering (include/exclude)\r\n3. Better parameter documentation throughout\r\n4. Fix #735, #1067: sometimes the LLM was confused what is the exact syntax for file name matching. Is it substring match, regex match, glob pattern or something else? It wasn't very clear from the name and description. \r\n\r\n## Server Details\r\n\r\n- Server: filesystem\r\n- Changes to: tools\r\n\r\n## Motivation and Context\r\n\r\nBoth Claude and human users may misinterpret the `search_files` function as a content search tool (like grep) rather than a file/directory name matcher. The suggested description makes the distinction clear from the beginning and explicitly notes that it doesn't search file contents.\r\n\r\n## How Has This Been Tested?\r\n\r\nTested with Claude Desktop with the following prompts, before and after the change.\r\n1. The \"Before\" column shows which function was selected by the LLM before this PR.\r\n8. The \"After\" column shows which function was selected by the LLM with this PR, for the exact same prompt.\r\n\r\n| Prompt | Before | After |\r\n| --- | --- | --- |\r\n| Find all references to \"XYZ\" under <br/>/Users/my_userid/my_project/ | search_files | search_file_content |\r\n| Find files whose names contain \"color\" under <br/>/Users/my_userid/my_project/ | search_files | search_files_by_name |\r\n| Search files that contain \"XYZ\" under <br/>/Users/my_userid/my_project using  filesystem MCP. | search_files | search_file_content |\r\n| Search \"XYZ\" under <br/>/Users/my_userid/my_project using  filesystem MCP. | search_files | search_file_content |\r\n| Search \"xyz\" in file a/b/c/foo.cpp | search_files | search_file_content |\r\n\r\nFor prompt 1, the LLM can easily infer it should be searching for file contents, not matching file names. Previously, the LLM mistakenly invoked the `search_files` function, which typically would return no matching results.\r\n\r\nFor prompts 3 and 4, there is intentionally some prompt ambiguity to test how the LLM decide whether to use `search_files_by_name` or `search_file_content` based on the function names and descriptions.\r\n\r\n## Breaking Changes\r\n\r\n> Will users need to update their MCP client configurations?\r\n\r\nNo, but I'm not sure I understand breaking changes. I'm unclear whether it's ok to rename a function, or if it's considered to be a breaking change.\r\n\r\n## Types of changes\r\n<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [x] Documentation update\r\n\r\n## Checklist\r\n<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follows MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested this with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [ ] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n## Additional context\r\n\r\n### Tests for the `search_file_contents` function\r\n\r\n- [x] Basic text search returns correct results for common terms\r\n- [x] Case-sensitive search correctly differentiates between uppercase and lowercase patterns\r\n- [x] Regex pattern search correctly identifies patterns like function declarations `async function \\w+\\(`\r\n- [x] Context lines display works correctly with different values (0, 2, 4 lines)\r\n- [x] Max results parameter properly limits the number of results returned\r\n- [x] File extension filtering correctly includes only the specified file types (.ts, .js, etc.)\r\n- [x] File extension filtering handles files without extensions correctly\r\n- [x] Exclude patterns with wildcards (`**/*.test.ts`) correctly filter out matching files\r\n- [x] Exclude patterns with simple strings (`*config*`) correctly filter content containing those strings\r\n- [x] Combined search with regex + case sensitivity + file types works correctly\r\n- [x] Search handles large files efficiently without excessive memory usage\r\n- [x] Directory recursion works correctly for nested file structures\r\n- [x] Error handling for inaccessible files or directories works as expected\r\n- [x] Race conditions are avoided when searching directories in parallel\r\n- [x] Files with non-UTF8 encoding are handled gracefully without crashing\r\n",
      "created_at": "2025-03-17T21:08:02Z",
      "updated_at": "2025-08-26T18:19:07Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {},
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432740,
          "node_id": "LA_kwDONRaG_88AAAABzvmeJA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/enhancement",
          "name": "enhancement",
          "color": "a2eeef",
          "default": true,
          "description": "New feature or request"
        },
        "1": {
          "id": 8351171797,
          "node_id": "LA_kwDONRaG_88AAAAB8cTE1Q",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-filesystem",
          "name": "server-filesystem",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Filesystem MCP server - src/filesystem"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "sebastien-rosset:search_files",
        "ref": "search_files",
        "sha": "c0478e9da28ee42a968525aced909b41ec951560",
        "user": {
          "login": "sebastien-rosset",
          "id": 16657278,
          "node_id": "MDQ6VXNlcjE2NjU3Mjc4",
          "avatar_url": "https://avatars.githubusercontent.com/u/16657278?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/sebastien-rosset",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 950133476,
          "node_id": "R_kgDOOKHi5A",
          "name": "modelcontextprotocol-servers",
          "full_name": "sebastien-rosset/modelcontextprotocol-servers",
          "private": false,
          "owner": {
            "login": "sebastien-rosset",
            "id": 16657278,
            "node_id": "MDQ6VXNlcjE2NjU3Mjc4",
            "avatar_url": "https://avatars.githubusercontent.com/u/16657278?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/sebastien-rosset",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/sebastien-rosset/modelcontextprotocol-servers",
          "created_at": "2025-03-17T17:22:11Z",
          "updated_at": "2025-08-26T18:10:28Z",
          "pushed_at": "2025-08-26T18:17:11Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 25954,
          "stargazers_count": 0,
          "watchers_count": 0,
          "language": "TypeScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 0,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "e968c6c8fc7a2f74199c64adfcfc499980011e69",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/897"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/897"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/897"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/897/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/897/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/897/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/c0478e9da28ee42a968525aced909b41ec951560"
        }
      },
      "author_association": "CONTRIBUTOR",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        8,
        7,
        1
      ]
    },
    {
      "url": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/630",
      "id": 2337959262,
      "node_id": "PR_kwDONRaG_86LWm1e",
      "number": 630,
      "state": "open",
      "locked": false,
      "title": "Resolve #604 Running mcp-server-git with uvx gives full disk access/--repository param is ignored",
      "user": {
        "login": "sparesparrow",
        "id": 72402690,
        "node_id": "MDQ6VXNlcjcyNDAyNjkw",
        "avatar_url": "https://avatars.githubusercontent.com/u/72402690?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/sparesparrow",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      },
      "body": "\r\n## Description\r\n\r\n**Security Enhancement: Robust Path Validation and Parent Directory Support**\r\n\r\n### Key Improvements\r\n\r\n1. **Enhanced Path Security** (`server.py`)\r\n   - **New `PathValidator` Class:**  \r\n     - Blocks access to system directories (e.g. `/etc`, `/usr`, etc.)  \r\n     - Prevents path traversal (rejects paths containing `..`)  \r\n     - Resolves symlinks and validates that paths are within safe roots  \r\n     - Supports resolving both absolute and relative paths, ensuring that when a base directory (via `--repository`) is configured, all paths are contained within it\r\n\r\n   - **Dual-Mode Validation:**  \r\n     - **Configured Mode:**  \r\n       - When a valid Git repository is directly configured, tool calls automatically use the base repository and ignore any provided `repo_path`  \r\n       - When a parent directory is configured, every tool call must include an explicit `repo_path` that is validated against the base directory  \r\n     - **Unconfigured Mode:**  \r\n       - The server restricts repository paths to pre-approved safe roots\r\n```mermaid\r\ngraph TD\r\n    A[Client Request] --> B{--repository flag provided?}\r\n    B -- Yes --> C[Configured Base Directory Provided]\r\n    B -- No --> D[Require Explicit repo_path in Tool Call]\r\n\r\n    C --> E{Is Configured Base a Git Repo?}\r\n    E -- Yes --> F[Automatically use Base Repository]\r\n    E -- No --> D\r\n\r\n    D --> G[Validate Provided repo_path]\r\n    G --> H{repo_path within Allowed Base?}\r\n    H -- Yes --> I[Proceed with Operation]\r\n    H -- No --> J[Reject Request with Error]\r\n```\r\n\r\n2. **Server Initialization Improvements** (`__init__.py`)\r\n   - Removed the forced Git repository check during startup to support parent directories\r\n   - Enhanced signal handling (SIGINT, SIGTERM) and graceful cleanup using an explicit event loop\r\n\r\n3. **Tool Access Control & Error Handling** (`server.py`)\r\n   - Each tool call now:\r\n     - Validates the repository path using the new `PathValidator`  \r\n     - Resolves relative paths against the configured base directory  \r\n     - Provides clear, actionable error messages if the path is out-of-scope or invalid\r\n   - Tools such as `git_status`, `git_diff`, `git_create_branch`, etc., dynamically adjust their input schema based on the current configuration mode\r\n\r\n4. **Documentation Updates** (`README.md`)\r\n   - Added a dedicated \"Repository Path Security\" section describing:\r\n     - How operations are restricted to the configured repository (or subdirectories, if using a parent directory)\r\n     - The enforcement of safe path practices (blocking `../` traversal, system directory protection)\r\n   - Updated tool input details (e.g. renaming `start_point` to `base_branch` in branch creation)\r\n\r\n5. **Enhanced Testing** (`test_server.py`)\r\n   - New tests assert that:\r\n     - Paths outside the allowed scope are correctly rejected\r\n     - The server properly resolves a configured repository or a child repository when a parent directory is used\r\n     - Git operations (branch creation, checkout, diff) succeed when given valid paths, and fail gracefully when not\r\n\r\n### Motivation and Context\r\n\r\nThis change is necessary to ensure that the Git MCP server is not vulnerable to malicious path traversal or unintended access to critical system directories. In addition to improving security:\r\n- **Input Validation:** Only paths within the allowed boundaries are permitted.\r\n- **Flexibility:** By introducing parent directory support, the server can now manage multiple repositories safely.\r\n- **Robust Logging:** Enhanced error reporting allows users and administrators to diagnose issues more easily.\r\n\r\n### How Has This Been Tested?\r\n\r\n1. **Unit Tests**\r\n   - Extensive tests in `test_server.py` covering safe/unsafe path checks, repository validation, and tool operations\r\n2. **Integration Tests**\r\n   - Verified both single-repository mode and parent directory mode using UVX and LLM client calls\r\n   - Tested against known system directories to ensure they are appropriately blocked\r\n3. **Security Tests**\r\n   - Confirmed that symlink resolution, relative-path prevention, and overall boundary enforcement work as expected\r\n\r\n### Breaking Changes\r\n\r\n- **Configuration Update (Parent Directory Mode):**\r\n  - When the `--repository` flag points to a parent directory (instead of a single Git repository), clients must provide an explicit `repo_path` with each tool call.\r\n  - Existing configurations assuming a single repository might require adaptation.\r\n\r\n### Types of Changes\r\n\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (adds functionality for multi-repository support)\r\n- [ ] Breaking change (may require configuration update for parent directory mode)\r\n- [x] Documentation update\r\n\r\n### Checklist\r\n\r\n- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)\r\n- [x] My changes follow MCP security best practices\r\n- [x] I have updated the server's README accordingly\r\n- [x] I have tested these changes with an LLM client\r\n- [x] My code follows the repository's style guidelines\r\n- [x] New and existing tests pass locally\r\n- [x] I have added appropriate error handling\r\n- [x] I have documented all environment variables and configuration options\r\n\r\n### Additional Context\r\n\r\n- **Defense-in-Depth Approach:**\r\n  1. Path normalization and resolution  \r\n  2. System directory deny list  \r\n  3. Symlink protection  \r\n  4. Dual-mode containment checks  \r\n  5. Copy-on-write argument handling\r\n\r\n- **Tool Dispatch Adjustments:**  \r\n  Adjusts the schema and parameters on the fly based on whether the base directory is a single repository or a parent directory containing multiple repositories.\r\n\r\n- **Security Impact:**  \r\n  This PR significantly improves the server's security posture by ensuring:\r\n  1. Unauthorized repository access is prevented.\r\n  2. System directories are blocked.\r\n  3. Symlink vulnerabilities are reduced.\r\n  4. Repository integrity is maintained through strict path validation.\r\n\r\nResolves [#604](https://github.com/modelcontextprotocol/servers/issues/604)",
      "created_at": "2025-02-15T23:33:55Z",
      "updated_at": "2025-08-02T19:20:05Z",
      "closed_at": null,
      "merged_at": null,
      "merge_commit_sha": null,
      "assignee": null,
      "assignees": {},
      "requested_reviewers": {
        "0": {
          "login": "evalstate",
          "id": 1936278,
          "node_id": "MDQ6VXNlcjE5MzYyNzg=",
          "avatar_url": "https://avatars.githubusercontent.com/u/1936278?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/evalstate",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "1": {
          "login": "tadasant",
          "id": 3900899,
          "node_id": "MDQ6VXNlcjM5MDA4OTk=",
          "avatar_url": "https://avatars.githubusercontent.com/u/3900899?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/tadasant",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "2": {
          "login": "jenn-newton",
          "id": 153535757,
          "node_id": "U_kgDOCSbFDQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/153535757?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/jenn-newton",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "3": {
          "login": "cliffhall",
          "id": 871933,
          "node_id": "MDQ6VXNlcjg3MTkzMw==",
          "avatar_url": "https://avatars.githubusercontent.com/u/871933?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/cliffhall",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "4": {
          "login": "olaservo",
          "id": 16480113,
          "node_id": "MDQ6VXNlcjE2NDgwMTEz",
          "avatar_url": "https://avatars.githubusercontent.com/u/16480113?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/olaservo",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        }
      },
      "requested_teams": {},
      "labels": {
        "0": {
          "id": 7767432729,
          "node_id": "LA_kwDONRaG_88AAAABzvmeGQ",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/bug",
          "name": "bug",
          "color": "d73a4a",
          "default": true,
          "description": "Something isn't working"
        },
        "1": {
          "id": 8359493992,
          "node_id": "LA_kwDONRaG_88AAAAB8kPBaA",
          "url": "https://api.github.com/repos/modelcontextprotocol/servers/labels/server-git",
          "name": "server-git",
          "color": "D4C5F9",
          "default": false,
          "description": "Reference implementation for the Git MCP server - src/git"
        }
      },
      "milestone": null,
      "draft": false,
      "head": {
        "label": "sparesparrow:bug-604",
        "ref": "bug-604",
        "sha": "3958f00f6d58a02d6b8780ce0b47bdf90a5bb1a1",
        "user": {
          "login": "sparesparrow",
          "id": 72402690,
          "node_id": "MDQ6VXNlcjcyNDAyNjkw",
          "avatar_url": "https://avatars.githubusercontent.com/u/72402690?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/sparesparrow",
          "type": "User",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 927705393,
          "node_id": "R_kgDON0upMQ",
          "name": "mcp-servers",
          "full_name": "sparesparrow/mcp-servers",
          "private": false,
          "owner": {
            "login": "sparesparrow",
            "id": 72402690,
            "node_id": "MDQ6VXNlcjcyNDAyNjkw",
            "avatar_url": "https://avatars.githubusercontent.com/u/72402690?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/sparesparrow",
            "type": "User",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": true,
          "url": "https://api.github.com/repos/sparesparrow/mcp-servers",
          "created_at": "2025-02-05T12:06:29Z",
          "updated_at": "2025-08-11T17:47:36Z",
          "pushed_at": "2025-08-02T19:20:04Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 25794,
          "stargazers_count": 2,
          "watchers_count": 2,
          "language": "JavaScript",
          "has_issues": false,
          "has_projects": true,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 0,
          "archived": false,
          "disabled": false,
          "open_issues_count": 0,
          "license": {
            "key": "mit",
            "name": "MIT License",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit",
            "node_id": "MDc6TGljZW5zZTEz"
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 0,
          "open_issues": 0,
          "watchers": 2,
          "default_branch": "main"
        }
      },
      "base": {
        "label": "modelcontextprotocol:main",
        "ref": "main",
        "sha": "a86312525b0e0f98c59060ae687c34af282151a7",
        "user": {
          "login": "modelcontextprotocol",
          "id": 182288589,
          "node_id": "O_kgDOCt2AzQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/modelcontextprotocol",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "repo": {
          "id": 890668799,
          "node_id": "R_kgDONRaG_w",
          "name": "servers",
          "full_name": "modelcontextprotocol/servers",
          "private": false,
          "owner": {
            "login": "modelcontextprotocol",
            "id": 182288589,
            "node_id": "O_kgDOCt2AzQ",
            "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
            "gravatar_id": "",
            "url": "https://api.github.com/users/modelcontextprotocol",
            "type": "Organization",
            "user_view_type": "public",
            "site_admin": false
          },
          "description": "Model Context Protocol Servers",
          "fork": false,
          "url": "https://api.github.com/repos/modelcontextprotocol/servers",
          "created_at": "2024-11-19T01:10:17Z",
          "updated_at": "2026-02-18T19:19:35Z",
          "pushed_at": "2026-02-14T18:48:55Z",
          "homepage": "https://modelcontextprotocol.io",
          "size": 28571,
          "stargazers_count": 78929,
          "watchers_count": 78929,
          "language": "TypeScript",
          "has_issues": true,
          "has_projects": false,
          "has_downloads": true,
          "has_wiki": false,
          "has_pages": false,
          "has_discussions": false,
          "forks_count": 9551,
          "archived": false,
          "disabled": false,
          "open_issues_count": 334,
          "license": {
            "key": "other",
            "name": "Other",
            "spdx_id": "NOASSERTION",
            "url": null,
            "node_id": "MDc6TGljZW5zZTA="
          },
          "allow_forking": true,
          "is_template": false,
          "web_commit_signoff_required": false,
          "has_pull_requests": true,
          "pull_request_creation_policy": "all",
          "topics": {},
          "visibility": "public",
          "forks": 9551,
          "open_issues": 334,
          "watchers": 78929,
          "default_branch": "main"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/630"
        },
        "html": {
          "href": "https://github.com/modelcontextprotocol/servers/pull/630"
        },
        "issue": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/630"
        },
        "comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/issues/630/comments"
        },
        "review_comments": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/630/comments"
        },
        "review_comment": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/comments{/number}"
        },
        "commits": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/pulls/630/commits"
        },
        "statuses": {
          "href": "https://api.github.com/repos/modelcontextprotocol/servers/statuses/3958f00f6d58a02d6b8780ce0b47bdf90a5bb1a1"
        }
      },
      "author_association": "NONE",
      "auto_merge": null,
      "active_lock_reason": null,
      "linked_issues": [
        6
      ]
    }
  ],
  "discussions": [],
  "details": {
    "id": 890668799,
    "node_id": "R_kgDONRaG_w",
    "name": "servers",
    "full_name": "modelcontextprotocol/servers",
    "private": false,
    "owner": {
      "login": "modelcontextprotocol",
      "id": 182288589,
      "node_id": "O_kgDOCt2AzQ",
      "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/modelcontextprotocol",
      "type": "Organization",
      "user_view_type": "public",
      "site_admin": false
    },
    "description": "Model Context Protocol Servers",
    "fork": false,
    "url": "https://api.github.com/repos/modelcontextprotocol/servers",
    "created_at": "2024-11-19T01:10:17Z",
    "updated_at": "2026-02-18T19:19:35Z",
    "pushed_at": "2026-02-14T18:48:55Z",
    "homepage": "https://modelcontextprotocol.io",
    "size": 28571,
    "stargazers_count": 78929,
    "watchers_count": 78929,
    "language": "TypeScript",
    "has_issues": true,
    "has_projects": false,
    "has_downloads": true,
    "has_wiki": false,
    "has_pages": false,
    "has_discussions": false,
    "forks_count": 9551,
    "archived": false,
    "disabled": false,
    "open_issues_count": 334,
    "license": {
      "key": "other",
      "name": "Other",
      "spdx_id": "NOASSERTION",
      "url": null,
      "node_id": "MDc6TGljZW5zZTA="
    },
    "allow_forking": true,
    "is_template": false,
    "web_commit_signoff_required": false,
    "has_pull_requests": true,
    "pull_request_creation_policy": "all",
    "topics": {},
    "visibility": "public",
    "forks": 9551,
    "open_issues": 334,
    "watchers": 78929,
    "default_branch": "main",
    "permissions": {
      "admin": false,
      "maintain": false,
      "push": false,
      "triage": false,
      "pull": true
    },
    "temp_clone_token": "",
    "custom_properties": {
      "repo_protection_L3": "true"
    },
    "organization": {
      "login": "modelcontextprotocol",
      "id": 182288589,
      "node_id": "O_kgDOCt2AzQ",
      "avatar_url": "https://avatars.githubusercontent.com/u/182288589?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/modelcontextprotocol",
      "type": "Organization",
      "user_view_type": "public",
      "site_admin": false
    },
    "network_count": 9551,
    "subscribers_count": 563
  },
  "lastFetched": 1771442969131
}