GitShow/modelcontextprotocol/servers
modelcontextprotocol

servers

Model Context Protocol Servers

by modelcontextprotocol
Star on GitHubForkWebsitenpm

TypeScript

89.6k stars11.4k forks1.0k contributorsActive · 5d agoSince 20242026.7.10

Meet the team

See all 1036 on GitHub →
olaservo
olaservo537 contributions
tadasant
tadasant239 contributions
cliffhall
cliffhall229 contributions
jspahrsummers
jspahrsummers217 contributions
dsp-ant
dsp-ant160 contributions
jerome3o-anthropic
jerome3o-anthropic121 contributions
maheshmurag
maheshmurag66 contributions
evalstate
evalstate63 contributions

Languages

View on GitHub →
TypeScript70.6%
Python18%
JavaScript10.2%
Dockerfile1.1%

Commit activity

Last 12 weeks · 53 commits

Full graph →

Community health

5 of 6 standards met

Community profile →
87
✓README✓License✓Contributing✓Code of Conduct○Issue Template✓PR Template

Recent PRs & issues

Active · Last activity 5d ago
See all on GitHub →
morozow
mcp-server-fetch drops SSR content from streaming/progressive rendering sitesOpenIssue

Description The tool silently drops the majority of page content from websites that use progressive server-side rendering (SSR) with a streaming architecture. This affects a growing number of modern web applications that deliver content in two phases: 1. An immediate lightweight loading shell (visible to the user instantly) 2. SSR-rendered content injected into the DOM with or off-screen positioning, waiting for client-side hydration to make it visible The function passes the full HTML through with Mozilla Readability (). Readability's content extraction algorithm treats elements with , , or as non-content and strips them entirely. This means the actual page content — navigation, articles, documentation, interactive elements — is removed, and only the loading shell text survives into the final markdown output. Steps to Reproduce 1. Configure as an MCP server 2. Fetch any page from (e.g. ) 3. Observe the returned content Expected result: Full page content — specification text, headings, tables, code blocks, navigation Actual result: A single line: — which is the loading shell subtitle, not the page content Root Cause Analysis The site uses event-driven streaming to Lambda-backed SSR. The HTTP response is delivered as : The HTTP client () correctly receives all chunks — the full 83 KB HTML. The problem occurs afterward, in : (via Mozilla Readability) evaluates element visibility and discards the 70 KB of SSR content because it is styled as hidden. The 13.5 KB loading shell produces one line of extractable text. This is not a network issue, not a timeout issue, and not a chunked transfer issue. The data arrives in full. It is discarded during content extraction. Impact This affects any website using: Progressive SSR (Next.js streaming, Remix deferred, custom engine + Lambda streaming) Skeleton-first rendering where SSR markup is injected hidden and revealed on hydration Critical CSS inlining** with deferred content visibility These are mainstream patterns recommended by React, Next.js, and Google's Core Web Vitals guidance. The number of affected sites will only grow. From the LLM's perspective, the tool returns confidently with minimal content, giving no indication that 85% of the page was silently dropped. The model has no way to know the extraction failed. Proposed Solutions Option A: Readability fallback on short extraction (minimal change, recommended) After analysis, changes have been applied accordingly; the original approach is kept for reference and further investigation. Details are provided in the comment: https://github.com/modelcontextprotocol/servers/issues/3878#issuecomment-4242628585 . If Readability returns content that is significantly shorter than the input HTML, retry without Readability: This preserves current behavior for normal pages and only activates the fallback when Readability clearly failed to extract meaningful content. Option B: Pre-process HTML to remove visibility styles before Readability Strip , , and off-screen positioning from inline styles before passing to Readability: This is more targeted but adds a dependency on and may have edge cases. Option C: Add CLI flag Allow users to bypass Readability entirely: This gives operators control but doesn't fix the default behavior. Recommendation Option A is the safest path — it requires no new dependencies, doesn't change behavior for sites where Readability works correctly, and automatically recovers when Readability strips too aggressively. Options B and C can be considered as follow-ups. Environment installed via with (Node.js-backed Readability) for HTML-to-Markdown conversion Tested against (Nginx + Lambda SSR with chunked streaming) Verification To confirm the issue independently:

morozow · 1h ago
KavyaNagariya
fix(python-servers): cap mcp version below v2.0.0 to prevent startup …OpenPR

Description This PR caps the SDK dependency to for all Python-based reference servers (, , and ). Because the Python MCP SDK recently released version with breaking changes (renaming to and removing decorators like ), unpinned installations like would resolve the latest version and instantly crash on startup. Capping the dependencies ensures these servers continue to run properly on older stable SDK APIs. Server Details Server: , , Changes to: dependencies Motivation and Context This resolves three active startup crash issues: Fixes #4560 (fetch) Fixes #4570 (time) Fixes #4580 (git) How Has This Been Tested? Tested locally by compiling the package and verifying that the dependency resolution caps the SDK below . Breaking Changes No (prevents breaking changes introduced by the SDK upgrade). Types of changes [x] Bug fix (non-breaking change which fixes an issue) [ ] New feature (non-breaking change which adds functionality) [ ] Breaking change (fix or feature that would cause existing functionality to change) [ ] Documentation update Checklist [x] I have read the MCP Protocol Documentation [x] My changes follows MCP security best practices [x] I have tested this with an LLM client [x] My code follows the repository's style guidelines [x] New and existing tests pass locally

KavyaNagariya · 2h ago
teddiesloco
fix(git): normalize git_log and git_show formatting across filtered and unfiltered queriesOpenPR

Summary Fixes the schema and formatting asymmetry between filtered ( / ) and unfiltered calls in , as well as . Root Cause 1. Repr vs Plain String: In unfiltered and , and were used, producing quoted strings like and . In contrast, the timestamp-filtered branch produced unquoted . 2. Author Format Asymmetry: Filtered queries produced or plain author name, whereas unfiltered queries produced . 3. Date Format Asymmetry: Filtered queries used git CLI's human-readable format while unfiltered queries used Python object string. 4. Delimiter Safety: Date-filtered git log now uses ASCII Unit/Record Separators ( / ) instead of splitting by raw newlines (), preventing multi-line commit messages from corrupting the parsed log entry count. Fix Standardized both code paths to output clean unquoted , , ISO-8601 , and clean . Added Unit Separator delimiters in git log command to handle arbitrary multi-line commit subjects safely. Added regression test asserting schema uniformity across filtered and unfiltered queries. Verification Ran full test suite via (43/43 PASS). Verified monorepo build ( clean across all workspace packages).

teddiesloco · 3h ago

Recent fixes

View closed PRs →
latent-9
Fix typo in Everything server docsMergedPR

Small typo fix in the Everything server architecture docs: "initilization" -> "initialization".

latent-9 · 55m ago
Lumos-789
refactor(time): remove unused TimeConversionInput modelMergedPR

Summary The pydantic model (, , ) is defined but never used anywhere in the codebase. The actual method uses plain parameters: This is dead code left over from a past refactor. Why Unused code is a maintenance burden and a source of confusion: a reader might assume is the canonical input shape for , when in fact the real signature uses three separate parameters. Verification Ran the existing test suite locally — all tests pass: Changes Removed the unused class (4 lines + surrounding blank lines). No behavioral change.

Lumos-789 · 2h ago
Lumos-789
fix(time): correct invalid IANA timezone example in convert_time descriptionMergedPR

Problem The tool's parameter description uses as an example. This is not a valid IANA timezone identifier — the tz database has no such key (San Francisco uses ). Impact LLM clients consuming this description as a usage hint tend to copy example values verbatim. Passing causes the server to reject the call with , surprising the user. Fix Replace the example with the valid identifier. This also brings in line with the description, which already correctly uses / . Verification No test asserts on the description text (grep'd across — only the production code uses it). One-line change, no logic affected.

Lumos-789 · 2h ago
Structured data for AI agents

Repository: modelcontextprotocol/servers. Description: Model Context Protocol Servers Stars: 89574, Forks: 11448. Primary language: TypeScript. Languages: TypeScript (70.6%), Python (18%), JavaScript (10.2%), Dockerfile (1.1%). Homepage: https://modelcontextprotocol.io Latest release: 2026.7.10 (1mo ago). Open PRs: 100, open issues: 411. Last activity: 5d ago. Community health: 87%. Top contributors: olaservo, tadasant, cliffhall, jspahrsummers, dsp-ant, jerome3o-anthropic, maheshmurag, evalstate, baryhuang, marcelo-ochoa and others.

·@ofershap

Replace github.com with gitshow.dev