Compare commits

..
Author SHA1 Message Date
Nandini-Inuguru
d73f99efbf
fix(memory): serialize graph mutations to prevent concurrent write race (#4555)
Some checks failed
Python / detect-packages (push) Has been cancelled
TypeScript / detect-packages (push) Has been cancelled
Python / Test (push) Has been cancelled
Python / Build (push) Has been cancelled
TypeScript / Test (push) Has been cancelled
TypeScript / Build (push) Has been cancelled
createEntities, createRelations, addObservations, deleteEntities,
deleteObservations, and deleteRelations each independently did
load -> mutate -> save with no synchronization. Concurrent tool
calls (e.g. multiple mutations dispatched from one LLM turn) could
race: both read the same starting state, both write back their own
copy, and whichever write landed last silently discarded the other's
changes. Interleaved writes could also corrupt the file outright.

Adds an in-process async mutex (KnowledgeGraphManager.withLock) that
serializes all six mutation methods through a single queue. Read-only
methods (readGraph, searchNodes, openNodes) are unaffected.

Verified: reverting the fix and re-running the new concurrency tests
reproduces the bug exactly (lost entities, lost relations, malformed
JSONL lines). With the fix, all 39 tests pass.

Fixes #1819

Co-authored-by: olaservo <olahungerford@gmail.com>
2026-09-02 18:42:26 -07:00
JSap0914
1ec570c27d
fix(memory): skip duplicate entities and relations within a single batch (#4383)
create_entities and create_relations only de-duplicated against the existing
graph, so passing the same entity name (or identical relation) twice in one
call persisted duplicate records. This contradicts the documented behavior
("Ignores entities with existing names" / "Skips duplicate relations") and
breaks the implicit name-uniqueness invariant the rest of the manager relies
on (e.g. addObservations/deleteEntities key on name).

De-duplicate within the input batch as well, keeping the first occurrence.

Co-authored-by: JSap0914 <JSap0914@users.noreply.github.com>
Co-authored-by: olaservo <olahungerford@gmail.com>
2026-09-02 18:38:22 -07:00
fei
f41b666edf
fix(memory): constrain search_nodes query length (#4662)
The search_nodes tool accepted an unbounded query string (per
modelcontextprotocol/servers#3537, official servers should constrain
string parameters). An oversized query costs an O(graph) scan per
call with no value. Cap it at 2048 chars via an exported
SearchNodesQuerySchema, and add vitest coverage for the boundary
(at-limit accepted, over-limit rejected, non-string still rejected).

Signed-off-by: fei <204683769+feiiiiii5@users.noreply.github.com>
2026-09-02 18:35:03 -07:00
Yiheng Zhao
c3d8e43d1f
fix(memory): validate knowledge graph entries when loading from disk (#4717)
loadGraph() trusted the persisted memory file and pushed entities and
relations without validating their fields. A corrupted or legacy entry
(e.g. an entity missing entityType, or an observation that is not a string)
would reach searchNodes and crash with "Cannot read properties of undefined
(reading 'toLowerCase')".

Validate each line against the existing EntitySchema/RelationSchema and skip
malformed entries with a warning, so the in-memory graph only ever contains
well-formed data. Malformed JSON lines are skipped as well.

Fixes #2044
2026-09-02 18:34:58 -07:00
Connor Moss
abbbddb2e3
fix(memory): stop reporting deletions that did not happen (#4738)
delete_entities, delete_observations and delete_relations returned
success: true with a hardcoded "deleted successfully" message regardless
of what matched. An agent that mistypes an entity name is told its memory
is clean while the data is still on disk, and nothing in the response
contradicts that. addObservations throws for the same condition ten lines
above, so the file already disagreed with itself.

Staying quiet is deliberate and documented, so nothing throws and the
output schema is unchanged. The three manager methods now return what
they matched, and the handlers say so. A delete where everything is found
returns the same message it always did.

README updated: the three "Silent operation" bullets described the
absence of an error, which is still true, but read as if the response
said nothing either.
2026-09-02 18:34:53 -07:00
Amey Pawar
649af5856e
fix(memory): expand leading ~ in MEMORY_FILE_PATH to the home directory (#4447)
* fix(memory): expand leading ~ in MEMORY_FILE_PATH to the home directory

MCP clients pass MEMORY_FILE_PATH from JSON config, where no shell
expands a leading "~". Because path.isAbsolute("~/memory.jsonl") is
false, the value was joined onto the package directory, so the server
persisted to a literal "~" folder inside the install instead of the
user's intended location.

Add an expandHome() helper that mirrors the one already used by the
filesystem server (src/filesystem/path-utils.ts) and apply it in
ensureMemoryFilePath() before the existing absolute/relative resolution.
Absolute paths, relative paths, and a "~" not at the start are
unaffected. Adds unit tests for expandHome plus an end-to-end test
through ensureMemoryFilePath.

Addresses #1600

* test(memory): use a literal ~/ path in the tilde expansion test

path.join('~', ...) produces a backslash on Windows, which expandHome does
not match, so the test failed there.

---------

Co-authored-by: olaservo <olahungerford@gmail.com>
2026-09-02 18:15:44 -07:00
Nick Veenhof
242751e8ee
fix(memory): add trailing newline to JSONL output (#3653)
Co-authored-by: Nick Veenhof <nveenhof@gitlab.com>
Co-authored-by: olaservo <olahungerford@gmail.com>
2026-09-02 18:15:35 -07:00
Yufeng He
ba167cef5b
fix: declare zod runtime dependencies (#4289)
Co-authored-by: olaservo <olahungerford@gmail.com>
2026-09-02 18:15:26 -07:00
King Star
48723c95dc
fix(memory): reject dangling relations (#4477)
Signed-off-by: King Star <mcxin.y@gmail.com>
2026-09-02 08:04:34 -07:00
石岳峰
96c49c7364
fix(memory): read serverInfo.version from package.json (#4407)
Fixes #4406. The memory server previously hardcoded serverInfo.version as
"0.6.3", which no longer matched published calendar versions. Resolve
package.json from both source and dist layouts so Docker and npm installs
report the installed package version.

Co-authored-by: syf2211 <syf2211@users.noreply.github.com>
2026-09-02 08:04:28 -07:00
Yusufhan Sacak
cce08de417
fix(memory): resolve Vitest false positive for expected rejection (#3893)
Wrap the addObservations call in an async closure before asserting with
.rejects.toThrow(). This prevents Vitest's global unhandled rejection
handler from capturing the expected error before the assertion can
intercept it, eliminating the false-positive "Unhandled Errors" warning
that was failing CI.

Fixes #3073
2026-09-02 08:03:51 -07:00
Ola Hungerford
2e3e4c7ab7
ci: run readme-pr-check on pull_request_target so fork PRs can be labeled (#4739)
Observed on #4714 and #4726: addLabels returned 403 "Resource not
accessible by integration" because pull_request gives fork PRs a
read-only token. The job only calls the GitHub API and never checks
out PR code, so pull_request_target is safe here.


Claude-Session: https://claude.ai/code/session_01CK8vvB229h6orvkokG8YxU

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 20:01:29 -07:00
Abhinav Prakash
3aa19f5574
fix(git): unify git_log output schema and remove raise_exceptions from server.run (#4658) 2026-09-01 19:25:31 -07:00
Abhinav Prakash
579c3903f3
docs(brave-search): point to official @brave/brave-search-mcp-server package (#4714)
Fixes #4694
2026-08-31 09:22:36 -07:00
Yohanes
a6cdbf4dea
fix(filesystem): reject Windows paths on POSIX (#4704)
Co-authored-by: Yohanes <CryoThrust@users.noreply.github.com>
2026-08-30 14:43:38 -07:00
Trent Apple
ebaccfd623
fix: Containers - Bind Mounts - Security and Compatibility (Docker / Podman / SELinux) for Fetch, Git, and Time Servers (#2205)
* Update Dockerfile for fetch

Initial patch for podman and SELinux contexts.

* Update Dockerfile for time

podman and SELinux

* Update Dockerfile

* Also include app user / group (securely) such that the build succeeds

* Container app user optional add (#1)

* Update Dockerfile git

* Update Dockerfile fetch

* Update Dockerfile time

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

---------

Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
2026-08-30 13:07:02 -07:00
Riley
cda92bdaac
fix(filesystem): create_directory doesn't create parent directories (#4631)
validatePath()'s ENOENT fallback checked only the immediate parent
directory before allowing a new path through. Creating a path with
more than one missing level (e.g. a/b/c when none of a, b, c exist)
made the immediate parent check fail with "Parent directory does not
exist", even though fs.mkdir was already called with recursive: true
one level up in the create_directory handler and an existing allowed
ancestor was available further up the tree.

Walk up through missing ancestors until an existing one is found (or
the filesystem root is reached), verifying that ancestor still
resolves inside an allowed directory via realpath. The top-level
lexical containment check already ran against the full target path,
so this only extends how far the existence/symlink check climbs.

Fixes #4629

Co-authored-by: Riley <313779891+rileybuilds@users.noreply.github.com>
Co-authored-by: olaservo <olahungerford@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 10:58:19 -07:00
Amir Fathi
d6402efee6
fix(sequentialthinking): restore nextThoughtNeeded in the advertised inputSchema required array (#4652)
* fix(sequentialthinking): restore nextThoughtNeeded in the advertised inputSchema required array

commit 1cdf806d (#3533) wrapped nextThoughtNeeded in a z.preprocess-based
coercedBoolean to fix a real footgun (string "false" coercing to true).
zod's toJSONSchema(..., { io: "input" }) treats a z.preprocess()-wrapped
field's input type as unknown, so it silently drops that field from the
emitted required array, even though it carries no .optional(). A client
that builds its call arguments from the advertised schema then omits
nextThoughtNeeded and gets a -32602 Invalid params from the runtime
validator, which still requires it.

Rebuild coercedBoolean as a transform on an explicit z.union([z.boolean(),
z.string()]) instead of z.preprocess. The union gives toJSONSchema a
concrete input type to report, so nextThoughtNeeded stays in required,
while parse behavior (including the case-insensitive string coercion
#3533 added) is unchanged.

Fixes #4651

* test(sequentialthinking): pin nextThoughtNeeded in required and string coercion

Runs against the built server so it checks the schema the SDK emits.
Skips when dist/ is absent, matching server-version.test.ts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Wo28CHPXyM3DHoLWvKnCK

---------

Co-authored-by: olaservo <olahungerford@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 10:57:34 -07:00
karl4c
40a8de87ed
fix(sequentialthinking): read server version from package.json (#4576)
* fix(sequentialthinking): read server version from package.json

Replace the hardcoded 0.2.0 so initialize serverInfo tracks the
package version (0.6.2 in-tree; CalVer after release), matching the
approach used for memory server version sync.

Skip the dist-layout assertion when dist/ is absent so CI's
test-before-build job (and local runs without prepare) still pass.

* test(sequentialthinking): smoke stdio initialize serverInfo.version

Spawn the built server over stdio and assert getServerVersion() matches
package.json (and is not the old hardcoded 0.2.0). Skip when dist/ is
absent so test-before-build CI still passes.
2026-08-28 10:01:24 -07:00
Excelius
11845d51cb
fix(filesystem): preserve UTF-8 across head and tail chunks (#4667) 2026-08-28 10:01:16 -07:00
KXH
cf05b37694
fix(filesystem): resolve Unicode-equivalent paths (#4638)
Signed-off-by: KXH <shepherdlaurie238@gmail.com>
2026-08-28 10:01:08 -07:00
Teddy100x
642a9112e7
fix(memory): write the knowledge graph atomically (#4642)
* fix(memory): write the knowledge graph atomically

`saveGraph()` wrote the graph straight to the memory file:

    await fs.writeFile(this.memoryFilePath, lines.join("\n"));

`fs.writeFile` opens the target with `'w'`, which truncates it before any
new bytes are written. If the process is interrupted between truncation
and completion — SIGKILL, container or host stop, OOM kill, power loss —
the memory file is left empty or half-written.

That file is the only persistence layer for the knowledge graph, so the
window is small but the loss is total and unrecoverable.

The fix writes to a temporary file in the same directory and renames it
over the target. `rename(2)` is atomic on POSIX filesystems: a reader
sees either the complete old file or the complete new one, never an
intermediate state. Keeping the temp file in the same directory ensures
the rename stays on one filesystem, since cross-device renames fail with
EXDEV. On failure the temp file is removed so no strays accumulate.

Tests added in `__tests__/atomic-save.test.ts`:

- the live memory file is never opened for truncating writes
- a committed graph survives a write that fails midway
- no temporary files remain after a successful write
- the temporary file is cleaned up when the rename fails
- graph contents still round-trip correctly across reloads

The first and fourth fail against the previous implementation.

Full suite: 55 passed (50 existing, 5 new). `tsc --noEmit` clean.

Fixes #4614

* fix(memory): use randomBytes for temp filename to avoid concurrent collision

---------

Co-authored-by: teddiesloco <teddiesloco@users.noreply.github.com>
2026-08-28 10:00:33 -07:00
eeshsaxena
18ce197639
fix(filesystem): make move_file fail instead of overwriting the destination (#4630)
The move_file tool description and README both state the operation fails if
the destination already exists, but the handler called fs.rename directly,
which silently overwrites the destination. Since this server ships no delete
tool, move_file effectively provided unadvertised, irreversible file
deletion: moving any file onto an existing target destroyed the target.

Add a moveFile helper in lib.ts that rejects when the destination already
exists (checked with lstat, so an existing symlink is detected rather than
followed) and only renames when the target is free, and use it from the
move_file handler. Behaviour now matches the documented contract.

Fixes #4628
2026-08-28 09:58:51 -07:00
drudiger
562feeb281
fix(filesystem): preserve file permissions during write and edit operations (#4115)
* fix(filesystem): preserve file permissions during write and edit operations

The atomic write pattern (write temp file + rename) replaces the original
inode, causing the new file to have default 0644 permissions regardless of
what the original file had. This breaks executable scripts and other files
with non-default permissions.

Fix: capture stat.mode before writing and restore it with chmod after rename.

Fixes both writeFileContent() and applyFileEdits().

* fix(filesystem): mask chmod mode and keep chmod failure from failing the write

Pass origStats.mode & 0o777 to chmod instead of the full st_mode. Move
the chmod out of the try whose catch unlinks the temp file and rethrows,
since rename has already succeeded by then. Add a test that an EPERM
from chmod does not reject the write.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Wo28CHPXyM3DHoLWvKnCK

---------

Co-authored-by: Dustin Rudiger <drudiger@apple.com>
Co-authored-by: olaservo <olahungerford@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-27 19:36:45 -07:00
Ryan Lopopolo
71e3cfbd1e
test(filesystem): add MCP SDK regression coverage for directory_tree (#3245)
* test(filesystem): add directory_tree MCP SDK regression coverage

* docs(filesystem): drop troubleshooting note from README
2026-08-27 19:17:32 -07:00
1060996408
781a93db14
fix(everything): remove dead code in template URI validation and subscription cleanup (#4104)
resources/templates.ts:
- `parseResourceId` had a guard that compared the URI against both
  `textUriBase` and `blobUriBase` with `&&`. Those prefixes are mutually
  exclusive, so the condition is always false and the branch is dead.
  Drop it; the SDK's template-based routing already guarantees the URI
  prefix is one of the two before the handler runs. The remaining
  positive-integer check on `resourceId` is preserved.

resources/subscriptions.ts:
- `sendSimulatedResourceUpdates` had an `else` branch that called
  `subscribers.delete(sessionId)` whenever the session wasn't in a URI's
  subscriber set, with a comment claiming the session had disconnected.
  That conclusion doesn't follow — a session not subscribed to URI A
  can still be subscribed to URI B — and the delete is a no-op when
  the element is absent anyway. Remove the branch.

No behavioral change. Existing 95 / 95 tests in `__tests__` still pass.

Co-authored-by: Jia Xuan <1060996408+jiaxuan@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-08-27 19:17:27 -07:00
nulone
8102fbe27a
fix(filesystem): handle negative values in formatSize() (#3231)
Return '0 B' for negative byte values instead of 'NaN B'.
File sizes cannot be negative, so this is a safe default.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-08-27 19:17:22 -07:00
Ola Hungerford
599dafc105
Merge pull request #4663 from olaservo/fix/python-cap-mcp-below-2
fix(python): require mcp>=1.29.0,<2 in fetch, git, and time
2026-08-18 09:02:46 -07:00
olaservo
d811ba11f1 docs(python): note the mcp 1.x requirement in fetch, git, and time
Users hitting the 2.0.0 startup failure land on the README first. Also makes
the three packages qualify for the next release: the release workflow selects
packages by .py/.ts/.md changes, so a dependency-only fix would merge without
publishing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 08:57:03 -07:00
olaservo
53dbe83b7a fix(python): require mcp>=1.29.0,<2 in fetch, git, and time
mcp 2.0.0 renamed McpError to MCPError and replaced the low-level Server
decorators with constructor handlers. The three servers had no upper bound,
so a fresh uvx install has resolved 2.0.0 since 2026-07-28 and failed to
start: fetch and time raise ImportError on the McpError import, git raises
AttributeError on server.list_tools().

The floor moves to 1.29.0, the last 1.x release. The previous floors (1.0.0
for git, 1.1.3 for fetch, 1.23.0 for time) resolved versions affected by
GHSA-vj7q-gjh5-988w, GHSA-jpw9-pfvf-9f58, and GHSA-hvrp-rf83-w775.

Porting to the v2 SDK is tracked separately.

Closes #4560
Closes #4570
Closes #4580

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 08:26:30 -07:00
Den Delimarsky
76d64c822f
Merge pull request #4527 from Joosboy/docs-everything-4096-references-formatting
docs(everything): fix markdown formatting and instructions file references
2026-07-29 16:09:46 -07:00
Den Delimarsky
1cd1096d29
Merge pull request #4591 from modelcontextprotocol/dependabot/npm_and_yarn/npm_and_yarn-f26b5a2147
chore(deps): bump @hono/node-server from 1.19.14 to 2.0.12 in the npm_and_yarn group across 1 directory
2026-07-29 15:09:50 -07:00
dependabot[bot]
d8cff7f016
chore(deps): bump @hono/node-server
Bumps the npm_and_yarn group with 1 update in the / directory: [@hono/node-server](https://github.com/honojs/node-server).


Updates `@hono/node-server` from 1.19.14 to 2.0.12
- [Release notes](https://github.com/honojs/node-server/releases)
- [Commits](https://github.com/honojs/node-server/compare/v1.19.14...v2.0.12)

---
updated-dependencies:
- dependency-name: "@hono/node-server"
  dependency-version: 2.0.12
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-29 22:07:16 +00:00
Den Delimarsky
7112282ce2
Merge pull request #4589 from modelcontextprotocol/dependabot/npm_and_yarn/npm_and_yarn-49aacb125d
chore(deps): bump the npm_and_yarn group across 1 directory with 6 updates
2026-07-29 15:06:23 -07:00
Den Delimarsky
76639ead0c
Merge pull request #4590 from modelcontextprotocol/dependabot/uv/src/git/uv-3eb4f0e641
chore(deps): bump the uv group across 3 directories with 4 updates
2026-07-29 15:05:57 -07:00
dependabot[bot]
3bcfedd8e4
chore(deps): bump the uv group across 3 directories with 4 updates
Bumps the uv group with 3 updates in the /src/git directory: [gitpython](https://github.com/gitpython-developers/GitPython), [mcp](https://github.com/modelcontextprotocol/python-sdk) and [pydantic-settings](https://github.com/pydantic/pydantic-settings).
Bumps the uv group with 2 updates in the /src/time directory: [mcp](https://github.com/modelcontextprotocol/python-sdk) and [pydantic-settings](https://github.com/pydantic/pydantic-settings).
Bumps the uv group with 2 updates in the /src/fetch directory: [mcp](https://github.com/modelcontextprotocol/python-sdk) and [soupsieve](https://github.com/facelessuser/soupsieve).


Updates `gitpython` from 3.1.50 to 3.1.54
- [Release notes](https://github.com/gitpython-developers/GitPython/releases)
- [Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES)
- [Commits](https://github.com/gitpython-developers/GitPython/compare/3.1.50...3.1.54)

Updates `mcp` from 1.23.0 to 1.28.1
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](https://github.com/modelcontextprotocol/python-sdk/compare/v1.23.0...v1.28.1)

Updates `pydantic-settings` from 2.12.0 to 2.14.2
- [Release notes](https://github.com/pydantic/pydantic-settings/releases)
- [Commits](https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.14.2)

Updates `mcp` from 1.25.0 to 1.28.1
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](https://github.com/modelcontextprotocol/python-sdk/compare/v1.23.0...v1.28.1)

Updates `pydantic-settings` from 2.12.0 to 2.14.2
- [Release notes](https://github.com/pydantic/pydantic-settings/releases)
- [Commits](https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.14.2)

Updates `mcp` from 1.23.0 to 1.28.1
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](https://github.com/modelcontextprotocol/python-sdk/compare/v1.23.0...v1.28.1)

Updates `soupsieve` from 2.6 to 2.8.4
- [Release notes](https://github.com/facelessuser/soupsieve/releases)
- [Commits](https://github.com/facelessuser/soupsieve/compare/2.6...2.8.4)

---
updated-dependencies:
- dependency-name: gitpython
  dependency-version: 3.1.54
  dependency-type: direct:production
  dependency-group: uv
- dependency-name: mcp
  dependency-version: 1.28.1
  dependency-type: direct:production
  dependency-group: uv
- dependency-name: pydantic-settings
  dependency-version: 2.14.2
  dependency-type: indirect
  dependency-group: uv
- dependency-name: mcp
  dependency-version: 1.28.1
  dependency-type: direct:production
  dependency-group: uv
- dependency-name: pydantic-settings
  dependency-version: 2.14.2
  dependency-type: indirect
  dependency-group: uv
- dependency-name: mcp
  dependency-version: 1.28.1
  dependency-type: direct:production
  dependency-group: uv
- dependency-name: soupsieve
  dependency-version: 2.8.4
  dependency-type: indirect
  dependency-group: uv
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-29 22:05:20 +00:00
dependabot[bot]
fd8248e56b
chore(deps): bump the npm_and_yarn group across 1 directory with 6 updates
Bumps the npm_and_yarn group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@hono/node-server](https://github.com/honojs/node-server) | `1.19.14` | `2.0.12` |
| [body-parser](https://github.com/expressjs/body-parser) | `2.2.2` | `2.3.0` |
| [brace-expansion](https://github.com/juliangruber/brace-expansion) | `5.0.6` | `5.0.8` |
| [fast-uri](https://github.com/fastify/fast-uri) | `3.1.2` | `3.1.4` |
| [hono](https://github.com/honojs/hono) | `4.12.25` | `4.12.32` |
| [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.25` |



Updates `@hono/node-server` from 1.19.14 to 2.0.12
- [Release notes](https://github.com/honojs/node-server/releases)
- [Commits](https://github.com/honojs/node-server/compare/v1.19.14...v2.0.12)

Updates `body-parser` from 2.2.2 to 2.3.0
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/v2.2.2...v2.3.0)

Updates `brace-expansion` from 5.0.6 to 5.0.8
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v5.0.6...v5.0.8)

Updates `fast-uri` from 3.1.2 to 3.1.4
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.2...v3.1.4)

Updates `hono` from 4.12.25 to 4.12.32
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](https://github.com/honojs/hono/compare/v4.12.25...v4.12.32)

Updates `postcss` from 8.5.15 to 8.5.25
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.15...8.5.25)

---
updated-dependencies:
- dependency-name: "@hono/node-server"
  dependency-version: 2.0.12
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: body-parser
  dependency-version: 2.3.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: brace-expansion
  dependency-version: 5.0.8
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: fast-uri
  dependency-version: 3.1.4
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: hono
  dependency-version: 4.12.32
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: postcss
  dependency-version: 8.5.25
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-29 22:04:42 +00:00
Den Delimarsky
ced1408d3a
Merge pull request #4587 from modelcontextprotocol/dependabot/github_actions/astral-sh/setup-uv-7
chore(deps): bump astral-sh/setup-uv from 3 to 7
2026-07-29 15:04:23 -07:00
Den Delimarsky
20b5783d3b
Merge pull request #4586 from modelcontextprotocol/dependabot/github_actions/actions/download-artifact-8
chore(deps): bump actions/download-artifact from 7 to 8
2026-07-29 15:04:09 -07:00
Den Delimarsky
4852bb3fc4
Merge pull request #4585 from modelcontextprotocol/dependabot/github_actions/actions/upload-artifact-7
chore(deps): bump actions/upload-artifact from 6 to 7
2026-07-29 15:03:38 -07:00
Den Delimarsky
10962d3114
Merge pull request #4588 from modelcontextprotocol/dependabot/github_actions/actions/setup-node-7
chore(deps): bump actions/setup-node from 6 to 7
2026-07-29 15:03:19 -07:00
Den Delimarsky
7bdcdb6a85
Merge pull request #4584 from modelcontextprotocol/dependabot/github_actions/actions/setup-python-7
chore(deps): bump actions/setup-python from 6 to 7
2026-07-29 15:03:08 -07:00
dependabot[bot]
fab6abed58
chore(deps): bump actions/setup-node from 6 to 7
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-29 22:02:15 +00:00
dependabot[bot]
2e15194d4e
chore(deps): bump astral-sh/setup-uv from 3 to 7
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 3 to 7.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](https://github.com/astral-sh/setup-uv/compare/v3...v7)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-29 22:02:12 +00:00
dependabot[bot]
42a1d825b1
chore(deps): bump actions/download-artifact from 7 to 8
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-29 22:02:08 +00:00
dependabot[bot]
40ce2f784e
chore(deps): bump actions/upload-artifact from 6 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-29 22:02:06 +00:00
dependabot[bot]
31bd12967f
chore(deps): bump actions/setup-python from 6 to 7
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6 to 7.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-29 22:02:03 +00:00
Den Delimarsky
86b9438e0e
Merge pull request #3243 from koic/enable_dependabot
Enable Dependabot
2026-07-29 15:01:28 -07:00
Mahadev Annabhimoju
63df72cb15 docs(everything): fix markdown formatting and instructions file references 2026-07-14 20:05:30 +05:30
Bryan Thompson
d31124c982
fix(filesystem): declare openWorldHint on all tools (#4480)
Every filesystem tool operates only on the local filesystem within its allowed
directories — none reaches an open or external world — but none declared the
MCP `openWorldHint` annotation, leaving open-world-hint coverage at 0/14. Set
`openWorldHint: false` on all 14 tools and document it in the README's tool
annotations section.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 10:15:49 -07:00
Bryan Thompson
97b70ee252
fix(filesystem): return valid MCP content type from read_media_file (#4029) (#4479)
* fix(filesystem): return valid MCP content type from read_media_file (#4029)

read_media_file returned a content block with type: "blob" for non-image/
non-audio files. "blob" is not a valid MCP content type (the union is
text | image | audio | resource_link | resource), so a strict client rejects
the result on schema validation.

Map the MIME type to a valid block: image/* -> image, audio/* -> audio, and
any other file type -> an embedded resource (the spec-correct carrier for
arbitrary bytes) with a pathToFileURL-encoded uri. Widen the tool's
outputSchema to the matching union and drop the now-unnecessary
`as unknown as CallToolResult` cast so tsc enforces the returned shape.

Tests cover the image, audio, and resource content types, verify the base64
blob round-trips to the original bytes, and assert the resource uri is
percent-encoded (space + non-ASCII) rather than a raw file:// concatenation.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* test(filesystem): assert structuredContent mirrors content in read_media_file tests

The SDK validates content and structuredContent independently against the
outputSchema union, so a refactor that lets the two drift apart (e.g. a
stale image block in structuredContent while content carries the resource)
stays schema-valid and every test stays green. Mirror-equality assertions
on all four callTool cases close that gap (mutation-verified: a schema-valid
drifted structuredContent fails exactly these four assertions).

Also drops a vacuous .not.toBe('blob') assertion that could never add
signal, noting where the real "never blob" guard actually lives (the SDK
client's CallToolResultSchema rejection, upstream of any local assertion).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 10:15:03 -07:00
Alex Akimov
0e30ad18c7
Merge pull request #4173 from modelcontextprotocol/dependabot/uv/src/fetch/uv-c30c77f42d
chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /src/fetch in the uv group across 1 directory
2026-07-06 16:24:09 +02:00
Alex Akimov
f7221c4d02
Merge pull request #4429 from orbisai0security/fix-cve-2026-48526-pyjwt
fix: upgrade pyjwt to 2.13.0 (CVE-2026-48526)
2026-07-06 16:22:27 +02:00
Alex Akimov
55d256293f
Merge pull request #4455 from kingrubic/add-pypi-repo-links-3336
Link Python packages to their source directories
2026-07-06 16:20:00 +02:00
Cliff Hall
7097923966
ci(release): switch npm publishing to OIDC trusted publishing (#4466)
ci(release): 4463 / Phase 1 - Switch npm publishing to OIDC trusted publishing
2026-07-04 19:03:24 -04:00
cliffhall
5850690363 ci: don't cancel in-progress CI runs on main
Per-ref cancellation is for superseded branch amend-pushes; on main,
every merge keeps its own CI run so failures stay attributable to a
specific commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AViME1R9ES2UXT1uQDx1TG
2026-07-04 18:44:47 -04:00
cliffhall
3b9d38fbac ci: run CI on pushes to any branch, cancel superseded runs
Previously push-triggered CI ran only on main, so same-repo branches
got no CI until a PR was opened (fork contributions were and remain
covered by pull_request, which fires on open and on every subsequent
push). Run on all pushes, and add a per-ref concurrency group so rapid
amend-pushes cancel superseded runs. Same-repo branches with an open
PR will run under both events; acceptable at this repo's scale.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AViME1R9ES2UXT1uQDx1TG
2026-07-04 18:36:43 -04:00
cliffhall
752985790e ci(release): remove the daily release cron; dispatch-only
Releases are now triggered deliberately via workflow_dispatch. The
schedule produced a year of unattended runs stuck awaiting environment
approval, every real release was manually dispatched anyway, and two
runs on the same UTC day collide on the date-based tag. Rename the
workflow to "Release" accordingly and update RELEASING.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AViME1R9ES2UXT1uQDx1TG
2026-07-04 17:22:02 -04:00
cliffhall
18f09adae3 docs(releasing): note per-registry guard placement precisely
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AViME1R9ES2UXT1uQDx1TG
2026-07-04 16:47:52 -04:00
cliffhall
06a8169e6f ci: remove dead release-triggered publish jobs; make RELEASING.md claims true
Review findings: RELEASING.md claimed publishing happens exclusively
from release.yml with no registry tokens, but typescript.yml and
python.yml still carried release:[published] publish jobs — never
fired (releases are created with GITHUB_TOKEN, which suppresses
workflow triggers) and unable to succeed under OIDC (typescript.yml's
still referenced the deleted NPM_TOKEN). Remove both jobs and their
release triggers; the workflows are now pure CI.

Also:
- add skip-existing to the PyPI publish action so re-runs tolerate
  already-uploaded files, and describe the per-registry guard
  accurately in RELEASING.md (npm aborts; PyPI skips)
- correct the fresh-dispatch note: same-day dispatches collide on the
  date-granular tag rather than minting a new version

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AViME1R9ES2UXT1uQDx1TG
2026-07-04 16:45:25 -04:00
cliffhall
a714b63b7f docs(releasing): describe the process as it stands after this PR
RELEASING.md documents the pipeline this PR ships (scheduled/dispatch
CalVer releases, OIDC publishing, retry runbook), with a footer noting
the planned Phase 2 changes tracked in #4463. The doc gets updated
when that work merges, not before.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AViME1R9ES2UXT1uQDx1TG
2026-07-04 16:36:41 -04:00
cliffhall
f2450d7fa4 docs(releasing): describe the go-forward release process
Rewrite RELEASING.md as the reference for the target process rather
than a snapshot of the interim state: semver via changesets for
TypeScript / CalVer for Python, versions changed only by PRs on main,
publishing triggered by creating a GitHub Release, per-package
registry-diff guard, OIDC trusted publishing with no registry tokens,
and the failed-publish retry runbook. Implementation tracked in #4463.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AViME1R9ES2UXT1uQDx1TG
2026-07-04 16:32:43 -04:00
cliffhall
9e9dfb95b5 docs(releasing): clarify CalVer is current state, semver for TS is planned
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AViME1R9ES2UXT1uQDx1TG
2026-07-04 16:31:27 -04:00
cliffhall
1c0fdc3063 docs: add RELEASING.md documenting OIDC publishing and retry process
Describes how packages publish (release.yml + release environment,
trusted publishing on npm and PyPI, no registry tokens, provenance),
what a release run does, and how to recover from a failed publish leg
(rerun --failed within the window, or ride the next release). Linked
from the root README alongside the other maintainer docs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AViME1R9ES2UXT1uQDx1TG
2026-07-04 16:08:50 -04:00
cliffhall
f4c86ff964 fix(release): count .md changes in package matrix; use --frozen for pytest
Review findings from the PR:
- release.py's has_changes() only counted .py/.ts files, so the README
  touches meant to enroll the four TS packages in the npm matrix would
  have been ignored. Include .md — READMEs ship inside the published
  package (npm tarball / PyPI long_description), so doc changes are
  release-relevant.
- uv run --frozen pytest for consistency with the job's other uv calls.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AViME1R9ES2UXT1uQDx1TG
2026-07-04 15:29:44 -04:00
cliffhall
dab3489b73 ci(release): run tests before publishing
Gate both publish jobs on the package's test suite: npm test
--if-present before the npm build/publish, and pytest (when a tests/
or test/ directory exists, matching python.yml's guard) before the
PyPI build/publish. Previously nothing between tagging and publishing
ran a single test.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AViME1R9ES2UXT1uQDx1TG
2026-07-04 10:01:31 -04:00
cliffhall
4307b95aee ci(release): enable provenance and pin npm version for OIDC publish
Align with modelcontextprotocol/inspector#1199:
- set NPM_CONFIG_PROVENANCE so published packages get provenance
  attestations
- pin the npm upgrade to ^11.5.1 instead of latest

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AViME1R9ES2UXT1uQDx1TG
2026-07-04 09:43:12 -04:00
cliffhall
1a4ecb7575 ci(release): switch npm publishing to OIDC trusted publishing
The NPM_TOKEN used by publish-npm is dead (npm classic-token sunset) —
both June release attempts failed publishing with a disguised auth error
(E404 on the publish PUT) after PyPI legs succeeded. Each
@modelcontextprotocol/* package's npm trusted publisher is being bound to
this workflow (release.yml) + the release environment, so publish-npm now
authenticates via OIDC instead of a token:

- add id-token: write permission to publish-npm (required to mint the
  OIDC token; contents: read added explicitly since setting permissions
  drops the defaults)
- upgrade the npm CLI in the publish job (trusted publishing requires
  npm >= 11.5.1; Node 22 bundles an older npm)
- drop NODE_AUTH_TOKEN from the publish step

Also touch each TypeScript server's README (add everything's missing
License section; link each package's npm page) so scripts/release.py
includes all four packages in the next npm publish matrix — they've been
stranded on npm at 2026.1.26 while PyPI advanced to 2026.6.16.

See #4463 for the rollout plan.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AViME1R9ES2UXT1uQDx1TG
2026-07-03 20:16:55 -04:00
Bao
a72e93e503 docs: link Python packages to source 2026-07-02 06:39:31 +07:00
Ola Hungerford
b2a94a21a5
fix(deps): bump python-multipart, cryptography, pyjwt to clear HIGH alerts (#4398)
Resolves a fresh batch of Dependabot alerts (disclosed 2026-06-15/16,
after PR #4376 merged) across the fetch, git, and time server lockfiles:

- python-multipart 0.0.27 -> 0.0.32 (CVE-2026-53539 HIGH querystring DoS,
  plus CVE-2026-53537/53538/53540 parameter smuggling / buffering)
- cryptography     48.0.0  -> 49.0.0 (GHSA-537c-gmf6-5ccf HIGH, vulnerable
  OpenSSL statically linked in wheels < 48.0.1)
- pyjwt            2.12.1  -> 2.13.0 (HIGH + medium JWT advisories)

All three are transitive deps; lockfiles only. Diff scoped to exactly
these 9 version bumps with no other resolution churn. git server tests
unchanged vs base (43 passed; 37 pre-existing Windows tempdir errors).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 09:13:57 +02:00
orbisai0security
aa8d20609c fix: CVE-2026-48526 security vulnerability
Automated dependency upgrade by OrbisAI Security
2026-06-28 12:12:32 +00:00
Lazreg Raed
7b1170d1da
feat(memory): expose knowledge graph as MCP Resource (#3323)
* feat(memory): expose knowledge graph as MCP Resource

Register the knowledge graph as a readable MCP Resource at
memory://knowledge-graph, enabling clients to discover and read
the graph via the Resources protocol without invoking a tool.

Mutation tools (create_entities, create_relations, add_observations,
delete_entities, delete_observations, delete_relations) now emit
notifications/resources/updated so subscribed clients see live
graph changes.

Resource registration is extracted into the exported
registerKnowledgeGraphResource() function so it can be unit-tested
in isolation, mirroring the everything server's registration
pattern. New tests assert registerResource is called with the
correct kebab-case name, URI, mime type, and that the handler
returns the graph as JSON in the contents array.

Addresses PR #3323 review feedback:
- kebab-case resource name per CLAUDE.md style guide
- single-line comment per CLAUDE.md style guide
- title metadata for client discoverability
- resource update notifications after mutations
- test coverage matching everything/registrations.test.ts pattern
- README documents the new Resource

* feat(memory): support resources/subscribe for the knowledge-graph resource

PR #3323 emitted notifications/resources/updated after every mutation but
the server only advertised resources.listChanged, so resources/subscribe
returned -32601 and a spec-compliant client could never actually subscribe.

Declare resources.subscribe, add subscribe/unsubscribe request handlers that
track subscribed URIs, and only emit notifications/resources/updated when the
client has subscribed to that URI.

Co-authored-by: Lazreg Raed <lazregraed222@gmail.com>

---------

Co-authored-by: olaservo <olahungerford@gmail.com>
2026-06-16 18:40:51 -07:00
Cliff Hall
a96189b2af
Merge pull request #4376 from olaservo/fix/server-vulns-2026-06
fix(security): resolve open dependency alerts; harden git_add
2026-06-16 10:45:17 -04:00
olaservo
0588ec098e fix(security): bump vulnerable deps; harden git_add (defense-in-depth)
Real fixes (deps):
- python (git/fetch/time): idna 3.10->3.18 (GHSA-65pc), starlette
  0.49.1->1.3.1 (GHSA-86qp)
- npm: vitest ^2.1.8->^4.1.8 (critical GHSA-5xrq UI server RCE). vitest 4
  pulls vite 8 (rolldown, no esbuild), clearing the esbuild/vite advisories
  natively. Remaining root overrides: qs>=6.15.2 (GHSA-q8mj, via express),
  hono>=4.12.21 (via @modelcontextprotocol/sdk).
- npm audit: 0 vulnerabilities; all TS (313) + Python (git/fetch/time) suites
  and TS builds pass.

Hardening (git_add):
- The repo already mitigates CVE-2026-27735 by using repo.git.add (the git
  CLI rejects out-of-tree paths, PR #3164's fix), not repo.index.add (which
  did not). Add an explicit path-boundary check in git_add as defense in
  depth plus regression tests asserting the security invariant (out-of-tree
  paths are never staged), guarding against a regression to repo.index.add.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 13:46:02 -07:00
Cliff Hall
275175cda1
Merge pull request #3816 from galagaevdc/fix/everything-elicitation-http-transport
fix(everything): use relatedTask option to enable elicitation over HTTP (#3228)
2026-06-07 18:29:29 -04:00
Cliff Hall
25e5f3a6e8
fix(everything): prevent URL elicitation error-path infinite loop (#4285)
* url elicitation

* single tool for normal and error path

* Address review feedback on URL elicitation tool

- Remove src/everything/pnpm-lock.yaml (monorepo uses npm workspaces)
- Drop redundant TriggerUrlElicitationSchema.parse(args) in the handler;
  destructure directly from args like the other tools, since the SDK
  validates against the registered schema before invoking the handler
- Add explicit accept/decline/cancel messaging in the request path,
  mirroring trigger-elicitation-request.ts
- Clarify the registerTool count comment in registrations.test.ts
  (task-based tools register via registerToolTask, counted separately)
- Add tests covering the no-url / undefined-capability registration
  guards, the randomUUID() elicitationId fallback, and the
  decline/cancel response paths (100% coverage of the tool)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Add tool annotations to trigger-url-elicitation

Match the annotations block on sibling elicitation tools and the
CLAUDE.md guidance. Uses openWorldHint: true since the tool drives an
external browser flow.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(everything): prevent URL elicitation error-path infinite loop

The trigger-url-elicitation tool's error path (errorPath=true) threw
UrlElicitationRequiredError (-32042) carrying the same URL that failed and
re-threw it on every retry, so clients looped (and tripped their own loop
detection).

- Point the prerequisite elicitation at a different URL
  (https://modelcontextprotocol.io) than the failing request.
- Track issued prerequisites by the inputs a client resends on retry
  (session + url + caller-supplied elicitationId); a plain retry is then
  recognized, ignores errorPath, and proceeds via the request path instead
  of re-throwing the prerequisite.
- Update tests and docs accordingly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(everything): address review on URL elicitation error path

- Replace raw NUL byte delimiters in errorPathKey with the \u0000 escape
  sequence so the source stays plain text and the diff is reviewable
  (same collision-proof delimiter at runtime).
- Add a one-shot test reset helper + beforeEach so the suite is robust to
  the module-level marker state regardless of order.
- Use a dedicated prerequisite message instead of reusing the caller's.
- Document the unbounded-growth tradeoff as a demo simplification and note
  the one-shot marker semantics in docs/features.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: evalstate <1936278+evalstate@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 18:47:20 -07:00
Ola Hungerford
f5054df1fb
fix(deps): bump gitpython and urllib3 to resolve HIGH security alerts (#4283)
- git: gitpython >=3.1.45 -> >=3.1.50 (lock 3.1.49 -> 3.1.50)
  Fixes GHSA-mv93-w799-cj2w: newline injection in config_writer()
  bypasses the CVE-2026-42215 patch, enabling RCE via core.hooksPath.
- fetch: urllib3 2.6.3 -> 2.7.0 (transitive via requests)
  Fixes GHSA-qccp-gfcp-xxvc (sensitive headers forwarded across origins
  on proxied redirects) and GHSA-mf9v-mfxr-j63j (decompression-bomb
  safeguards bypassed in the streaming API).

Resolves Dependabot alerts #129, #131, #132.
Tests pass (fetch: 20 passed; git: all test bodies pass, only
pre-existing Windows tmpdir-teardown errors remain).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 11:24:07 -04:00
shaun smith
3a32d1024b
Add URL Elicitation cases (#3334)
* url elicitation

* single tool for normal and error path

* Address review feedback on URL elicitation tool

- Remove src/everything/pnpm-lock.yaml (monorepo uses npm workspaces)
- Drop redundant TriggerUrlElicitationSchema.parse(args) in the handler;
  destructure directly from args like the other tools, since the SDK
  validates against the registered schema before invoking the handler
- Add explicit accept/decline/cancel messaging in the request path,
  mirroring trigger-elicitation-request.ts
- Clarify the registerTool count comment in registrations.test.ts
  (task-based tools register via registerToolTask, counted separately)
- Add tests covering the no-url / undefined-capability registration
  guards, the randomUUID() elicitationId fallback, and the
  decline/cancel response paths (100% coverage of the tool)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Add tool annotations to trigger-url-elicitation

Match the annotations block on sibling elicitation tools and the
CLAUDE.md guidance. Uses openWorldHint: true since the tool drives an
external browser flow.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: cliffhall <cliff@futurescale.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 18:10:07 -07:00
Yash Shah
64b1cb0208
feat(memory): add tool annotations to all knowledge graph tools (#3874)
Add MCP ToolAnnotations to all 9 tools in the memory server, matching
the annotation coverage already present in server-filesystem, server-git,
server-time, and server-sequential-thinking.

- Read tools (read_graph, search_nodes, open_nodes): read-only, idempotent
- Write tools (create_entities, create_relations, add_observations): non-destructive
- Delete tools (delete_entities, delete_observations, delete_relations): destructive, idempotent
- All tools: openWorldHint=false (local JSONL file operations only)

Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
2026-05-30 11:35:20 -07:00
Alex Akimov
9bade64fce
Move a list of frameworks and resources to a separate md file to make README more readable and lightweight (#4255)
* Moving frameworks and resources out of README

* Add a backlink to Additional from Readme
2026-05-30 09:44:47 -07:00
Krish Garg
00ce9cf134
fix(filesystem): preserve literal dollar replacements (#4225)
Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
2026-05-29 21:27:03 -07:00
Alex Akimov
ce3b44e21b
Merge pull request #4240 from adityasingh2400/fix-time-tool-description
Fix grammar in time server get_current_time description
2026-05-27 11:45:22 +02:00
Aditya Singh
6abf04eef1 Fix grammar in time server get_current_time tool description 2026-05-24 12:57:04 -07:00
Alex Akimov
b1e1eb1a55
Merge pull request #3246 from olaservo/fix/tool-annotations
feat(everything): add tool-level annotations to get-annotated-message
2026-05-17 19:59:27 +02:00
Alex Akimov
97ba6b3a65
Merge pull request #4109 from olaservo/security/npm-audit-fix-2026-05
chore(deps): npm audit fix for high/medium security alerts
2026-05-16 18:06:24 +02:00
olaservo
3f40d6e731 chore(deps): npm audit fix for high/medium security alerts
Bumps transitive npm dependencies via `npm audit fix` (no breaking changes):
- @hono/node-server 1.19.9 -> 1.19.14 (auth bypass via encoded slashes; serveStatic bypass)
- hono 4.11.7 -> 4.12.17 (multiple: serveStatic file access, cookie/SSE injection, IP matching, etc.)
- express-rate-limit 8.2.1 -> 8.5.0 (IPv4-mapped IPv6 bypass)
- path-to-regexp -> 8.4.2 (DoS via sequential optional groups / multi-wildcard ReDoS)
- rollup 4.52.5 -> 4.60.3 (arbitrary file write via path traversal)
- minimatch (3.x, 9.x, 10.x) -> patched (multiple ReDoS)
- brace-expansion -> patched (zero-step DoS)
- ajv 8.17.1 -> 8.20.0 (ReDoS in $data option)
- qs 6.14.1 -> 6.15.1 (arrayLimit bypass DoS)
- postcss 8.5.6 -> 8.5.14 (XSS in stringify output)

Build and tests pass across all TS workspaces. Remaining 7 moderate dev-only
alerts (vitest/vite/esbuild chain) require a major vitest 4.x bump and are
out of scope here.

Supersedes the contents of dependabot PR #3377 (minimatch 10.0.1 -> 10.2.1).
2026-05-16 08:54:35 -07:00
dependabot[bot]
040b5a96db
chore(deps): bump urllib3
Bumps the uv group with 1 update in the /src/fetch directory: [urllib3](https://github.com/urllib3/urllib3).


Updates `urllib3` from 2.6.3 to 2.7.0
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-version: 2.7.0
  dependency-type: indirect
  dependency-group: uv
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-16 15:23:32 +00:00
Alex Akimov
916fa420ec
Merge pull request #4110 from olaservo/security/python-deps-2026-05
chore(deps): bump python deps to address security alerts
2026-05-16 17:21:16 +02:00
Cliff Hall
acedea0c24
Merge pull request #4136 from KKonstantinov/feature/upgrade-zod-v4
upgrade everything-server to zod v4, latest MCP sdk
2026-05-12 10:15:09 -04:00
Konstantin Konstantinov
ef51b062f6
bump packages to 1.29.0 SDK 2026-05-11 15:17:39 +03:00
Konstantin Konstantinov
af15c688e4
upgrade everything-server to zod v4, latest MCP sdk 2026-05-11 14:29:58 +03:00
olaservo
0db9a34071 chore(deps): bump python deps to address security alerts
Bumps vulnerable Python deps via `uv lock --upgrade-package` across the
three Python workspaces (src/git, src/fetch, src/time):

High severity
- gitpython 3.1.45 -> 3.1.49 (src/git): command injection via Git options
  bypass and unsafe `multi_options` validation (GHSA-x9j5-25mq-w6vh,
  GHSA-2gv7-q9w6-xfwm)
- lxml 5.3.0 -> 6.1.0 (src/fetch): XXE in default iterparse() and
  ETCompatXMLParser() (GHSA-pjj9-h2g6-3v7q)
- pyjwt 2.10.1 -> 2.12.1 (all): accepts unknown `crit` header extensions
  (GHSA-75c5-xw7c-p5pm)

Medium / low
- cryptography 46.0.5 -> 48.0.0 (all): buffer overflow with non-contiguous
  buffers; incomplete DNS name constraint enforcement
- python-dotenv 1.0.1/1.2.1 -> 1.2.2 (all): symlink-following arbitrary
  file overwrite in set_key
- python-multipart 0.0.22 -> 0.0.27 (all): DoS via large preamble/epilogue
- pytest 8.3.x -> 9.0.3 (all): vulnerable tmpdir handling
- pygments 2.19.2 -> 2.20.0 (src/fetch): ReDoS in GUID matcher
- requests 2.32.4 -> 2.33.1 (src/fetch): insecure temp file reuse in
  extract_zipped_paths()

All three workspaces sync cleanly and `uv run pytest` passes:
- src/fetch: 20 passed
- src/time: 38 passed
- src/git: 41 passed (35 preexisting Windows-only fixture cleanup
  errors are reproducible on main and unrelated to this change)

Supersedes/extends dependabot PR #3748 (which only bumped requests and
cryptography to 46.0.6).
2026-05-05 06:55:44 -07:00
dhalahayeu
67a71f1b60 fix(everything): use relatedTask option to enable elicitation over HTTP (#3228) 2026-04-22 14:33:01 +02:00
Cliff Hall
4503e2d12b
Merge pull request #3659 from ShionEria/fix/issue-3460-windows-npx-docs
docs: add Windows npx wrapper examples
2026-04-17 18:59:54 -04:00
Cliff Hall
7e6b7807af
Merge pull request #3693 from nipunnegi2/patch-2
Fix typo in usage instructions for VS Code
2026-04-17 18:57:30 -04:00
Cliff Hall
c3448d71b5
Merge pull request #3694 from nipunnegi2/patch-3
Fix formatting in README for Docker usage note
2026-04-17 18:57:07 -04:00
Cliff Hall
74cdb4d867
Merge pull request #3695 from nipunnegi2/patch-4
Fix formatting in README for docker usage note
2026-04-17 18:56:41 -04:00
Cliff Hall
756db5b42a
Merge pull request #3733 from Zandereins/docs/add-claude-md
docs: add root CLAUDE.md and fix AGENTS.md typo
2026-04-17 18:50:57 -04:00
Cliff Hall
bb0a1893e7
Merge pull request #3877 from Chelebii/docs-3132-sequentialthinking-usage
docs: clarify sequentialthinking usage and add examples
2026-04-17 18:44:10 -04:00
Arif Celebi
5d146b379e
Merge branch 'main' into docs-3132-sequentialthinking-usage 2026-04-15 10:36:19 +01:00
Cliff Hall
d5bfe349af
Merge pull request #3950 from olaservo/retire-third-party-server-list
Retire third-party server list in favor of MCP Registry
2026-04-14 11:12:18 -04:00
olaservo
5914f61340 docs: retire third-party server list in favor of MCP Registry
The Third-Party Servers section (Official Integrations + Community
Servers) has been superseded by the MCP Registry at
https://registry.modelcontextprotocol.io/. The README already carried a
deprecation note and CONTRIBUTING.md froze new additions. This removes
the list, updates CONTRIBUTING.md to describe the new state, and
refreshes the readme-pr-check workflow's bot comment.
2026-04-14 08:05:23 -07:00
Arif Celebi
bae042b4f2 docs: clarify sequentialthinking usage and add examples 2026-04-08 23:49:45 +01:00
Zandereins
6e320090c0 docs: add root CLAUDE.md and fix AGENTS.md typo
Add a root CLAUDE.md that covers the full monorepo:
- Monorepo structure (7 servers, 4 TS + 3 Python)
- Build, test, and lint commands for both stacks
- Code style conventions
- Contributing guidelines summary
- CI/CD pipeline overview
- MCP protocol reference pointers

Fix typo in src/everything/AGENTS.md:
- `start:stremableHttp` → `start:streamableHttp`

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 14:37:53 +01:00
Nipun Negi
c104a61f87
Fix formatting in README for docker usage note 2026-03-24 12:08:13 +05:30
Nipun Negi
7a8c25d393
Fix formatting in README for Docker usage note 2026-03-24 12:06:24 +05:30
Nipun Negi
5150a95309
Fix typo in usage instructions for VS Code 2026-03-24 12:03:31 +05:30
ShionElia
e21dbea731 docs: add Windows npx wrapper examples 2026-03-21 04:10:32 +00:00
Arif Celebi
f4244583a6
fix(fetch): refresh uv lockfile (#3598) 2026-03-17 07:21:11 -07:00
Arif Celebi
b60eca1b3b
fix(filesystem): ensure bare Windows drive letters normalize to root (#3434)
fix(filesystem): ensure bare Windows drive letters normalize to root

Appends path.sep to bare drive letters (e.g. "C:") before calling path.normalize(), preventing them from normalizing to "C:." (current directory on drive) instead of "C:\" (drive root). Includes test coverage with platform mocking.

Fixes #3418
2026-03-16 12:12:00 -07:00
Niels Kaspers
1cdf806d21
fix(sequential-thinking): use z.coerce for number and boolean params (#3533)
fix(sequential-thinking): use z.coerce for number and safe preprocess for boolean params

Uses z.coerce.number() for number fields and a z.preprocess() helper for boolean fields to handle string-typed parameters from LLM clients. The preprocess approach correctly handles "false" → false, avoiding the z.coerce.boolean() footgun where Boolean("false") === true.

Fixes #3428
2026-03-15 10:09:04 -07:00
Supun Geethanjana Jayasinghe
c7e0c7e730
add tools | 3573 (#3589)
feat(git): add tool annotations

Adds MCP ToolAnnotations to all 12 git server tools, marking read-only operations (status, diff, log, show, branch) and distinguishing destructive (reset) from non-destructive write operations (add, commit, create_branch, checkout).

Fixes #3573
2026-03-15 09:05:24 -07:00
Elliot
ae40ec239d
fix(git): add missing argument injection guards to git_show, git_create_branch, git_log, and git_branch (#3545)
fix(git): add missing argument injection guards

Extends existing startswith("-") input validation to git_show, git_create_branch, git_log, and git_branch, preventing user-supplied values from being interpreted as CLI flags by GitPython's subprocess calls to git.
2026-03-15 09:04:24 -07:00
Niels Kaspers
81f8301cd2
feat(time): add tool annotations to get_current_time and convert_time (#3574) (#3581)
feat(time): add tool annotations

Adds MCP ToolAnnotations to both time server tools (get_current_time, convert_time). Both are read-only, non-destructive, idempotent, and closed-world.

Fixes #3574
2026-03-15 08:51:02 -07:00
Niels Kaspers
c2ee97e792
feat(sequential-thinking): add tool annotations (#3534)
feat(sequential-thinking): add tool annotations

Adds MCP ToolAnnotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to the sequential-thinking tool, bringing it in line with the annotation pattern established by the filesystem server.

Fixes #3403
2026-03-15 08:50:08 -07:00
Anshul Garg
83b22050b8
fix(fetch): handle malformed input without crashing (#3515)
fix(fetch): handle malformed input without crashing

Changes `raise_exceptions=True` to `raise_exceptions=False` in the fetch server's `Server.run()` call, preventing the server from crashing on malformed JSON-RPC input. This aligns with the SDK's intended default behavior and is consistent with other reference servers.

Fixes #3359
2026-03-15 08:35:30 -07:00
Ola Hungerford
a97aba19eb
Merge pull request #3293 from thecaptain789/fix-httpx-proxy-arg
fix(fetch): update to httpx 0.28+ proxy parameter
2026-03-07 12:38:04 -07:00
Ola Hungerford
ad3e660cc1
Merge pull request #3252 from dotsetgreg/fix/session-resource-reregistration
fix(everything): allow re-registration of session resources
2026-03-07 12:32:28 -07:00
Ola Hungerford
6d977ddc62
Merge pull request #3297 from DukeDeSouth/fix/memory-open-nodes-relations
fix(memory): return relations connected to requested nodes in openNodes/searchNodes
2026-03-07 12:25:27 -07:00
Ola Hungerford
72efc42976
Merge pull request #3230 from nulone/fix/filesystem-move-file-destructive-hint
fix(filesystem): mark move_file as destructive operation
2026-02-28 14:17:21 -07:00
Ola Hungerford
04cce79b4c
Merge pull request #3398 from modelcontextprotocol/localden/servers
Update README.md
2026-02-24 18:38:19 -07:00
Den Delimarsky
599b170e9d
Update README.md 2026-02-24 17:32:52 -08:00
David Wong
0e06979028
add figma to official integrations list (#3363) 2026-02-24 17:35:23 +00:00
Ola Hungerford
a83b1451c5
Merge pull request #3254 from wingding12/fix/filesystem-macos-symlink-path-resolution
fix(filesystem): resolve symlinked allowed directories to both forms
2026-02-19 07:36:47 -07:00
Ellis Shang
1b96551ef0
fix(filesystem): use fileURLToPath for Windows absolute path parsing (#3205) 2026-02-19 05:52:11 -07:00
Ola Hungerford
6a914b9db8
Merge pull request #3350 from modelcontextprotocol/localden/sec-doc-update
Update SECURITY.md to use GitHub Security Advisories
2026-02-18 19:58:50 -07:00
Den Delimarsky
5e3735d081 Update SECURITY.md to use GitHub Security Advisories 2026-02-18 20:51:23 +00:00
Ola Hungerford
8f8f5be91e
Merge branch 'main' into fix/tool-annotations 2026-02-12 19:11:23 -07:00
Cliff Hall
618cf4867b
Merge pull request #2609 from modelcontextprotocol/claude/issue-2526-20250824-0240
fix: resolve relative paths against allowed directories instead of process.cwd()
2026-02-11 09:57:53 -05:00
Koichi ITO
173d991153
Merge pull request #3320 from modelcontextprotocol/dependabot/uv/src/fetch/uv-7997262317
Bump the uv group across 3 directories with 1 update
2026-02-11 16:59:41 +09:00
dependabot[bot]
e3ea3c8b7f
Bump the uv group across 3 directories with 1 update
Bumps the uv group with 1 update in the /src/fetch directory: [cryptography](https://github.com/pyca/cryptography).
Bumps the uv group with 1 update in the /src/git directory: [cryptography](https://github.com/pyca/cryptography).
Bumps the uv group with 1 update in the /src/time directory: [cryptography](https://github.com/pyca/cryptography).


Updates `cryptography` from 46.0.3 to 46.0.5
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.3...46.0.5)

Updates `cryptography` from 46.0.3 to 46.0.5
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.3...46.0.5)

Updates `cryptography` from 46.0.3 to 46.0.5
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.3...46.0.5)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 46.0.5
  dependency-type: indirect
  dependency-group: uv
- dependency-name: cryptography
  dependency-version: 46.0.5
  dependency-type: indirect
  dependency-group: uv
- dependency-name: cryptography
  dependency-version: 46.0.5
  dependency-type: indirect
  dependency-group: uv
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-11 02:51:37 +00:00
Ola Hungerford
70c549be69
Merge pull request #3306 from shuklaham/time_doc_update
docs(time): add explicit uvx command to installation section
2026-02-09 09:43:46 -07:00
Shubham Shukla
26c0d57d57 docs(time): add explicit uvx command to installation section
The uv installation section mentioned using uvx but didn't show the
actual command, unlike the PIP section which shows both install and run
commands. This adds the missing `uvx mcp-server-time` command.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 22:23:30 -08:00
olaservo
87a996b548 fix(filesystem): run npm audit fix to resolve qs vulnerability
Fixes high-severity qs DoS vulnerability (GHSA-6rw7-vpxm-498p).
Remaining moderate-severity issues are in dev dependencies
(esbuild/vite/vitest) and require a breaking vitest v2->v4 upgrade.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 18:52:47 -07:00
Ola Hungerford
922cc2a329
Merge branch 'main' into fix/tool-annotations 2026-02-07 18:09:27 -07:00
olaservo
106216491e Update structure.md to reflect all tool annotations and new tools
- Update get-annotated-message description: all tools now have
  tool-level annotations, not just this one
- Add missing tool entries: simulate-research-query,
  trigger-elicitation-request-async, trigger-sampling-request-async
- Add these tools to the file tree listing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:32:16 -07:00
Cliff Hall
3921f5c041
Merge branch 'main' into claude/issue-2526-20250824-0240 2026-02-07 16:57:16 -05:00
Ola Hungerford
ccf675184e
Merge pull request #3236 from nielskaspers/add-everything-server-tests
Add Vitest tests for Everything Server
2026-02-07 10:14:57 -07:00
DukeDeSouth
ca7ea2253e fix(memory): return relations connected to requested nodes in openNodes/searchNodes
Previously, `openNodes` and `searchNodes` only returned relations where
BOTH endpoints were in the result set (using `&&`). This silently
dropped all relations to/from nodes outside the set — making it
impossible to discover a node's connections without calling `read_graph`
and filtering the entire dataset client-side.

Changed the filter from `&&` to `||` so that any relation with at least
one endpoint in the result set is included. This matches the expected
graph-query semantics: when you open a node, you should see all its
edges, not just edges to other opened nodes.

Fixes #3137

Tests updated and new cases added covering:
- Outgoing relations to nodes not in the open set
- Incoming relations from nodes not in the open set
- Relations connected to a single opened node
- searchNodes returning outgoing relations to unmatched entities

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 20:14:27 -05:00
Niels Kaspers
cd20aee6b4
Add experimental.tasks mock for new task-based tools
The upstream main added simulate-research-query and async tools that
use server.experimental.tasks.registerToolTask. Update mock servers
to include this API.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 23:21:49 +02:00
Niels Kaspers
0ca9921e20
Trim low-value tests per review feedback
Removed ~29 tests that were adding noise rather than coverage:
- Registration boilerplate tests (16): redundant with registrations.test.ts
- Redundant role/type checks (3): consolidated into behavioral tests
- "Should not throw" tests (6): consolidated into single lifecycle test
- Constant identity tests (2): provided no safety net
- expect(true).toBe(true) test (1): replaced with actual assertion
- Weak capability test (1): removed, handler check already exists

Strengthened remaining tests:
- Resource templates test now verifies specific resource names
- File resources test now asserts registerResource was called

Test count: 124 → 95 (29 removed)
Coverage unchanged at ~71%

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 23:20:05 +02:00
Niels Kaspers
9c0921276c
Add tests for server factory, registrations, and resources
Additional test coverage:
- server/index.ts: createServer factory, cleanup function (91% coverage)
- tools/index.ts: registerTools, registerConditionalTools (100% coverage)
- prompts/index.ts: registerPrompts (100% coverage)
- resources/index.ts: registerResources, readInstructions (88% coverage)
- resources/files.ts: registerFileResources (54% coverage)
- resources/subscriptions.ts: handlers, begin/stop updates (47% coverage)

Test count: 124 tests (was 102)
Coverage: 71.35% overall (was 64.73%)
- Tools: 93.12%
- Prompts: 90.53%
- Server: 62.93%
- Resources: 65.44%

Note: Transport files (stdio.ts, sse.ts, streamableHttp.ts) are entry
points that start Express servers. These require integration tests
rather than unit tests.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 23:20:05 +02:00
Niels Kaspers
f48efe3206
Add tests for remaining 6 tools
Complete test coverage for all 16 Everything Server tools:

New tests added:
- toggle-simulated-logging: start/stop logging toggle, session handling
- toggle-subscriber-updates: start/stop updates toggle, session handling
- trigger-sampling-request: capability check, sampling request/response
- trigger-elicitation-request: capability check, accept/decline/cancel actions
- get-roots-list: capability check, registration
- gzip-file-as-resource: compression, resource/resourceLink output types

Test count: 102 tests (was 81)
Coverage: 64.73% overall, 90.93% tools (was 34%, 40%)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 23:20:05 +02:00
Niels Kaspers
93a4f763b6
Add Vitest tests for Everything Server
Adds comprehensive test coverage for the Everything Server including:

Tools (10 tools tested):
- echo: message echoing with validation
- get-sum: number addition with edge cases
- get-env: environment variable retrieval
- get-tiny-image: image content blocks
- get-structured-content: weather data for all cities
- get-annotated-message: priority/audience annotations
- trigger-long-running-operation: progress notifications
- get-resource-links: dynamic resource link generation
- get-resource-reference: text/blob resource validation

Prompts (4 prompts tested):
- simple-prompt: no-argument prompt
- args-prompt: city/state arguments
- completable-prompt: department/name completions
- resource-prompt: embedded resource references

Resources:
- templates.ts: URI generation, text/blob resources
- session.ts: session-scoped resource registration

Test infrastructure:
- vitest.config.ts with v8 coverage
- Mock server helper for capturing registered handlers
- 81 tests, all passing

Closes #2925

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 23:20:05 +02:00
thecaptain789
8614dff06f fix(fetch): update to httpx 0.28+ proxy parameter
The httpx library renamed 'proxies' to 'proxy' in version 0.28.0.
This updates the fetch server to use the new parameter name and
removes the version cap on httpx.

Fixes #3287
2026-02-06 15:25:43 +00:00
Ola Hungerford
10d382798e
Merge pull request #3229 from nulone/fix/graceful-unavailable-paths
fix(filesystem): gracefully handle unavailable directories
2026-02-06 06:38:30 -07:00
olaservo
baf99300a2 Add tool annotations to all Everything server tools
Previously only get-annotated-message had ToolAnnotations. Now all 18
tools explicitly declare readOnlyHint, destructiveHint, idempotentHint,
and openWorldHint so the server serves as a complete reference for
developers implementing tool annotations per the MCP spec.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 05:35:51 -07:00
Ola Hungerford
5cb1c6e042
Merge branch 'main' into fix/tool-annotations 2026-02-04 20:35:01 -07:00
Ola Hungerford
6a690065cf
Merge pull request #3289 from modelcontextprotocol/dependabot/npm_and_yarn/npm_and_yarn-e011e83628
Bump the npm_and_yarn group across 1 directory with 2 updates
2026-02-04 20:20:33 -07:00
dependabot[bot]
e95bb9c44b
Bump the npm_and_yarn group across 1 directory with 2 updates
Bumps the npm_and_yarn group with 1 update in the / directory: [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk).


Updates `@modelcontextprotocol/sdk` from 1.25.2 to 1.26.0
- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases)
- [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.25.2...v1.26.0)

Updates `hono` from 4.11.3 to 4.11.7
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](https://github.com/honojs/hono/compare/v4.11.3...v4.11.7)

---
updated-dependencies:
- dependency-name: "@modelcontextprotocol/sdk"
  dependency-version: 1.26.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: hono
  dependency-version: 4.11.7
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-04 20:38:38 +00:00
Ola Hungerford
760829a778
Merge pull request #3206 from modelcontextprotocol/chore/apache-2.0-license
chore: update licensing to Apache 2.0 for new contributions
2026-02-04 06:00:33 -07:00
Ola Hungerford
c5df3a4722
Merge pull request #3262 from piyusht-square/add-fetch-server-tests
test(fetch): add unit tests for fetch MCP server
2026-02-04 05:59:59 -07:00
olaservo
dd6594c083 fix(filesystem): use vi.fn() instead of jest.fn() in test
The project uses Vitest, not Jest. Replace jest.fn() with vi.fn()
to fix the ReferenceError in the relative path resolution test.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 05:24:02 -07:00
Ola Hungerford
39a1db9bf2
Merge branch 'main' into claude/issue-2526-20250824-0240 2026-02-03 19:59:23 -07:00
Ola Hungerford
03f276bfe2
Merge branch 'main' into fix/tool-annotations 2026-02-03 06:42:09 -07:00
Piyush Tripathi
71d5d71a80 test(fetch): add unit tests for fetch MCP server
Add comprehensive test coverage for the fetch server:
- TestGetRobotsTxtUrl: 6 tests for URL parsing
- TestExtractContentFromHtml: 3 tests for HTML-to-markdown conversion
- TestCheckMayAutonomouslyFetchUrl: 5 tests for robots.txt handling
- TestFetchUrl: 6 tests for URL fetching with various scenarios

Total: 20 tests covering:
- URL parsing and robots.txt URL generation
- HTML content extraction and markdown conversion
- robots.txt permission checking (401, 403, 404, allow/disallow)
- HTTP response handling (success, errors, raw mode)
- Proxy support

Also adds pytest and pytest-asyncio as dev dependencies.
2026-01-28 14:31:01 -08:00
Den Delimarsky
e6b0b0f5d3
Merge pull request #3256 from modelcontextprotocol/localden/security-note
Update security requirements for servers
2026-01-27 15:03:04 -08:00
Ola Hungerford
6611260d49
Merge branch 'main' into fix/tool-annotations 2026-01-27 05:08:11 -07:00
Den Delimarsky
80397a9d3b
Update security requirements for servers
Note about security requirements, as discussed with @jenn-newton
2026-01-26 20:39:39 -08:00
Koichi ITO
b68d67d155
Merge pull request #3255 from modelcontextprotocol/dependabot/uv/src/fetch/uv-a822e4eeeb
Bump the uv group across 3 directories with 1 update
2026-01-27 11:28:09 +09:00
dependabot[bot]
a1f9dfa470
Bump the uv group across 3 directories with 1 update
Bumps the uv group with 1 update in the /src/fetch directory: [python-multipart](https://github.com/Kludex/python-multipart).
Bumps the uv group with 1 update in the /src/git directory: [python-multipart](https://github.com/Kludex/python-multipart).
Bumps the uv group with 1 update in the /src/time directory: [python-multipart](https://github.com/Kludex/python-multipart).


Updates `python-multipart` from 0.0.21 to 0.0.22
- [Release notes](https://github.com/Kludex/python-multipart/releases)
- [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Kludex/python-multipart/compare/0.0.21...0.0.22)

Updates `python-multipart` from 0.0.21 to 0.0.22
- [Release notes](https://github.com/Kludex/python-multipart/releases)
- [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Kludex/python-multipart/compare/0.0.21...0.0.22)

Updates `python-multipart` from 0.0.21 to 0.0.22
- [Release notes](https://github.com/Kludex/python-multipart/releases)
- [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Kludex/python-multipart/compare/0.0.21...0.0.22)

---
updated-dependencies:
- dependency-name: python-multipart
  dependency-version: 0.0.22
  dependency-type: indirect
  dependency-group: uv
- dependency-name: python-multipart
  dependency-version: 0.0.22
  dependency-type: indirect
  dependency-group: uv
- dependency-name: python-multipart
  dependency-version: 0.0.22
  dependency-type: indirect
  dependency-group: uv
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-26 23:57:45 +00:00
wingding12
8f2e9cc678
fix(filesystem): resolve symlinked allowed directories to both forms
On macOS, /tmp is a symlink to /private/tmp. When users specify /tmp
as an allowed directory, the server was resolving it to /private/tmp
during startup but then rejecting paths like /tmp/file.txt because
they dont start with /private/tmp.

This fix stores BOTH the original normalized path AND the resolved
path in allowedDirectories, so users can access files through either
form. For example, with /tmp as allowed directory, both /tmp/file.txt
and /private/tmp/file.txt will now be accepted.

Fixes #3253
2026-01-26 18:28:49 -05:00
Greg King
3e1be88c3b fix(everything): allow re-registration of session resources
When a tool like `gzip-file-as-resource` is called multiple times with the
same output name (especially the default `README.md.gz`), the server would
throw "Resource already registered" because the SDK doesn't allow
registering duplicate URIs.

This fix:
- Tracks registered resources by URI in a module-level Map
- Before registering a new resource, checks if the URI already exists
- If it does, removes the old resource using the SDK's `remove()` method
- Then registers the new resource with fresh content

This allows tools to be called repeatedly with the same parameters without
errors, which is important for LLM agents that may retry tool calls.

Found using Bellwether (https://bellwether.sh), an MCP server validation tool.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 09:10:58 -05:00
Ola Hungerford
59e60b5a69
Merge branch 'main' into fix/tool-annotations 2026-01-24 13:13:58 -07:00
Ola Hungerford
549dd025e2
Merge pull request #3242 from cliffhall/clear-timeouts-in-cleanup
Clear initialization timeout on disconnect
2026-01-24 10:47:19 -07:00
Koichi ITO
e73b9a2f9a Enable Dependabot
Follow-up to https://github.com/modelcontextprotocol/servers/pull/3233.

Configure Dependabot to automatically detect updates to the actions used in
GitHub Actions (e.g., `actions/checkout`) and create pull requests for them.

Based on experience, checking for updates on a weekly interval should work well.
2026-01-24 13:15:29 +09:00
cliffhall
ae1e7a5500 Fix #3234 -
"Everything Server crashes when multiple clients reconnect"

* In index.ts
  - added a variable to hold the initialize timeout
  - store the timeout in the oninitialized handler
  - clear the timeout in the cleanup callback

* In roots.ts
  - In the catch block of syncRoots, log the error to the console via .error rather than attempting to send to the client because the most probable case here is that we don't have a connection.
2026-01-23 13:35:32 -05:00
cliffhall
9ade57133f Fix #3234 -
"Everything Server crashes when multiple clients reconnect"

* In index.ts
  - added a variable to hold the initialize timeout
  - store the timeout in the oninitialized handler
  - clear the timeout in the cleanup callback

* In roots.ts
  - In the catch block of syncRoots, log the error to the console via .error rather than attempting to send to the client because the most probable case here is that we don't have a connection.

* In simulate-research-query.ts
  - remove redundant local variable in getTask
* Everywhere else, prettier.
2026-01-23 13:26:02 -05:00
Cliff Hall
eedb060099
Merge pull request #3193 from olaservo/add-tasks-support
feat(everything): add SEP-1686 Tasks support
2026-01-22 12:44:55 -05:00
olaservo
1542b65154 fix(everything): move task to params.task and remove pollInterval from requests
- Use params.task instead of params._meta.task for task metadata
- Remove pollInterval from task requests (only available on result)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 18:39:29 -07:00
Ola Hungerford
a160653441
Apply suggestions from code review
Co-authored-by: Cliff Hall <cliff@futurescale.com>
2026-01-21 17:55:10 -07:00
Cliff Hall
c20c017171
Merge branch 'main' into add-tasks-support 2026-01-21 12:34:08 -05:00
Koichi ITO
623aa8f459
Merge pull request #3233 from pgoslatara/actup/update-actions-1768905103
chore: Update outdated GitHub Actions versions
2026-01-22 00:50:31 +09:00
Cliff Hall
73f0c8b966
Merge branch 'main' into add-tasks-support 2026-01-20 10:29:49 -05:00
Padraic Slattery
71a59645c9 chore: Update outdated GitHub Actions versions 2026-01-20 11:31:43 +01:00
Koichi ITO
3fd7fb618a
Merge pull request #3224 from modelcontextprotocol/dependabot/uv/src/fetch/uv-bca2a229f3
Bump the uv group across 3 directories with 5 updates
2026-01-20 00:32:22 +09:00
lunov
86fd903d5f fix(filesystem): mark move_file as destructive operation
move_file deletes the source file, which is a destructive operation.
Updated annotations and README documentation to reflect this.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 19:58:26 +07:00
lunov
2dfa15dc6e fix(filesystem): gracefully handle unavailable directories
Previously, the server would crash if any configured directory was
unavailable (e.g., unmounted external drive). Now it:

- Filters out inaccessible directories with a warning
- Continues operating with remaining accessible directories
- Only fails if NO directories are accessible

Fixes #2815
2026-01-19 19:53:45 +07:00
olaservo
5156cff9dc fix(everything): implement graceful HTTP elicitation degradation
Implement graceful degradation for elicitation on HTTP transport:
- STDIO: Full elicitation works via sendRequest
- HTTP: Catches elicitation failure, uses default interpretation
- Task completes successfully on both transports

simulate-research-query now uses try-catch around sendRequest and
includes explanatory message when elicitation is skipped on HTTP.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 19:19:32 -07:00
olaservo
1cda86effb docs(everything): update features.md for direct elicitation flow
Update documentation to reflect that simulate-research-query now sends
elicitation requests directly from the background task instead of using
the tasks/result side-channel approach.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 17:44:55 -07:00
olaservo
c53a0f3799 fix(everything): send elicitation directly from background task
Instead of waiting for the client to call tasks/result to trigger
elicitation, the server now sends elicitation/create directly from
the background process using sendRequest. This simplifies the flow:

- Server sends elicitation proactively when clarification is needed
- Client receives and handles it via existing elicitation handler
- Task resumes and completes after receiving the response
- Client's polling sees completed status

This approach avoids requiring the client to detect input_required
status and call tasks/result as a side-channel.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 17:42:26 -07:00
Ola Hungerford
6556e339cb
Merge branch 'main' into add-tasks-support 2026-01-17 14:05:35 -07:00
dependabot[bot]
b906f726fa
Bump the uv group across 3 directories with 5 updates
Bumps the uv group with 5 updates in the /src/fetch directory:

| Package | From | To |
| --- | --- | --- |
| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.2.0` | `1.23.0` |
| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.4` |
| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |
| [starlette](https://github.com/Kludex/starlette) | `0.41.2` | `0.49.1` |
| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.6.3` |

Bumps the uv group with 3 updates in the /src/git directory: [mcp](https://github.com/modelcontextprotocol/python-sdk), [h11](https://github.com/python-hyper/h11) and [starlette](https://github.com/Kludex/starlette).
Bumps the uv group with 2 updates in the /src/time directory: [h11](https://github.com/python-hyper/h11) and [starlette](https://github.com/Kludex/starlette).


Updates `mcp` from 1.2.0 to 1.23.0
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](https://github.com/modelcontextprotocol/python-sdk/compare/v1.2.0...v1.23.0)

Updates `requests` from 2.32.3 to 2.32.4
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.3...v2.32.4)

Updates `h11` from 0.14.0 to 0.16.0
- [Commits](https://github.com/python-hyper/h11/compare/v0.14.0...v0.16.0)

Updates `starlette` from 0.41.2 to 0.49.1
- [Release notes](https://github.com/Kludex/starlette/releases)
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)
- [Commits](https://github.com/Kludex/starlette/compare/0.41.2...0.49.1)

Updates `urllib3` from 2.2.3 to 2.6.3
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.2.3...2.6.3)

Updates `mcp` from 1.2.0 to 1.23.0
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](https://github.com/modelcontextprotocol/python-sdk/compare/v1.2.0...v1.23.0)

Updates `h11` from 0.14.0 to 0.16.0
- [Commits](https://github.com/python-hyper/h11/compare/v0.14.0...v0.16.0)

Updates `starlette` from 0.41.2 to 0.49.1
- [Release notes](https://github.com/Kludex/starlette/releases)
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)
- [Commits](https://github.com/Kludex/starlette/compare/0.41.2...0.49.1)

Updates `mcp` from 1.2.0 to 1.23.0
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](https://github.com/modelcontextprotocol/python-sdk/compare/v1.2.0...v1.23.0)

Updates `h11` from 0.14.0 to 0.16.0
- [Commits](https://github.com/python-hyper/h11/compare/v0.14.0...v0.16.0)

Updates `starlette` from 0.41.2 to 0.49.1
- [Release notes](https://github.com/Kludex/starlette/releases)
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)
- [Commits](https://github.com/Kludex/starlette/compare/0.41.2...0.49.1)

Updates `mcp` from 1.1.0 to 1.23.0
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](https://github.com/modelcontextprotocol/python-sdk/compare/v1.2.0...v1.23.0)

Updates `h11` from 0.14.0 to 0.16.0
- [Commits](https://github.com/python-hyper/h11/compare/v0.14.0...v0.16.0)

Updates `starlette` from 0.41.3 to 0.49.1
- [Release notes](https://github.com/Kludex/starlette/releases)
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)
- [Commits](https://github.com/Kludex/starlette/compare/0.41.2...0.49.1)

Updates `mcp` from 1.1.0 to 1.23.0
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](https://github.com/modelcontextprotocol/python-sdk/compare/v1.2.0...v1.23.0)

Updates `h11` from 0.14.0 to 0.16.0
- [Commits](https://github.com/python-hyper/h11/compare/v0.14.0...v0.16.0)

Updates `starlette` from 0.41.3 to 0.49.1
- [Release notes](https://github.com/Kludex/starlette/releases)
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)
- [Commits](https://github.com/Kludex/starlette/compare/0.41.2...0.49.1)

Updates `mcp` from 1.1.0 to 1.23.0
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](https://github.com/modelcontextprotocol/python-sdk/compare/v1.2.0...v1.23.0)

Updates `h11` from 0.14.0 to 0.16.0
- [Commits](https://github.com/python-hyper/h11/compare/v0.14.0...v0.16.0)

Updates `starlette` from 0.41.3 to 0.49.1
- [Release notes](https://github.com/Kludex/starlette/releases)
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)
- [Commits](https://github.com/Kludex/starlette/compare/0.41.2...0.49.1)

Updates `h11` from 0.14.0 to 0.16.0
- [Commits](https://github.com/python-hyper/h11/compare/v0.14.0...v0.16.0)

Updates `starlette` from 0.41.3 to 0.49.1
- [Release notes](https://github.com/Kludex/starlette/releases)
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)
- [Commits](https://github.com/Kludex/starlette/compare/0.41.2...0.49.1)

Updates `h11` from 0.14.0 to 0.16.0
- [Commits](https://github.com/python-hyper/h11/compare/v0.14.0...v0.16.0)

Updates `starlette` from 0.41.3 to 0.49.1
- [Release notes](https://github.com/Kludex/starlette/releases)
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)
- [Commits](https://github.com/Kludex/starlette/compare/0.41.2...0.49.1)

Updates `h11` from 0.14.0 to 0.16.0
- [Commits](https://github.com/python-hyper/h11/compare/v0.14.0...v0.16.0)

Updates `starlette` from 0.41.3 to 0.49.1
- [Release notes](https://github.com/Kludex/starlette/releases)
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)
- [Commits](https://github.com/Kludex/starlette/compare/0.41.2...0.49.1)

---
updated-dependencies:
- dependency-name: mcp
  dependency-version: 1.23.0
  dependency-type: direct:production
  dependency-group: uv
- dependency-name: requests
  dependency-version: 2.32.4
  dependency-type: direct:production
  dependency-group: uv
- dependency-name: h11
  dependency-version: 0.16.0
  dependency-type: indirect
  dependency-group: uv
- dependency-name: starlette
  dependency-version: 0.49.1
  dependency-type: indirect
  dependency-group: uv
- dependency-name: urllib3
  dependency-version: 2.6.3
  dependency-type: indirect
  dependency-group: uv
- dependency-name: mcp
  dependency-version: 1.23.0
  dependency-type: direct:production
  dependency-group: uv
- dependency-name: h11
  dependency-version: 0.16.0
  dependency-type: indirect
  dependency-group: uv
- dependency-name: starlette
  dependency-version: 0.49.1
  dependency-type: indirect
  dependency-group: uv
- dependency-name: mcp
  dependency-version: 1.23.0
  dependency-type: direct:production
  dependency-group: uv
- dependency-name: h11
  dependency-version: 0.16.0
  dependency-type: indirect
  dependency-group: uv
- dependency-name: starlette
  dependency-version: 0.49.1
  dependency-type: indirect
  dependency-group: uv
- dependency-name: mcp
  dependency-version: 1.23.0
  dependency-type: direct:production
  dependency-group: uv
- dependency-name: h11
  dependency-version: 0.16.0
  dependency-type: indirect
  dependency-group: uv
- dependency-name: starlette
  dependency-version: 0.49.1
  dependency-type: indirect
  dependency-group: uv
- dependency-name: mcp
  dependency-version: 1.23.0
  dependency-type: direct:production
  dependency-group: uv
- dependency-name: h11
  dependency-version: 0.16.0
  dependency-type: indirect
  dependency-group: uv
- dependency-name: starlette
  dependency-version: 0.49.1
  dependency-type: indirect
  dependency-group: uv
- dependency-name: mcp
  dependency-version: 1.23.0
  dependency-type: direct:production
  dependency-group: uv
- dependency-name: h11
  dependency-version: 0.16.0
  dependency-type: indirect
  dependency-group: uv
- dependency-name: starlette
  dependency-version: 0.49.1
  dependency-type: indirect
  dependency-group: uv
- dependency-name: h11
  dependency-version: 0.16.0
  dependency-type: indirect
  dependency-group: uv
- dependency-name: starlette
  dependency-version: 0.49.1
  dependency-type: indirect
  dependency-group: uv
- dependency-name: h11
  dependency-version: 0.16.0
  dependency-type: indirect
  dependency-group: uv
- dependency-name: starlette
  dependency-version: 0.49.1
  dependency-type: indirect
  dependency-group: uv
- dependency-name: h11
  dependency-version: 0.16.0
  dependency-type: indirect
  dependency-group: uv
- dependency-name: starlette
  dependency-version: 0.49.1
  dependency-type: indirect
  dependency-group: uv
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-17 18:03:32 +00:00
Ola Hungerford
55a3056a04
Merge pull request #3222 from koic/fix_time_mcp_erro_constructor
fix(time): Fix `McpError` constructor usage in time server
2026-01-17 11:00:33 -07:00
Koichi ITO
9c9813d9dc fix(time): Fix McpError constructor usage in time server
Fixes CI failures in PR #3220.

PR #3220 updated `mcp` library from 1.0.0 to 1.23.0, which caused test
failures due to a breaking change in `McpError` constructor API.

The `McpError` constructor now expects an `ErrorData` object instead of
a plain string message. This commit fixes the usage in `get_zoneinfo()`
function to use `ErrorData(code=INVALID_PARAMS, message=...)`.

```console
Error before fix:
  AttributeError: 'str' object has no attribute 'message'
```

Also updates `mcp` dependency to >=1.23.0 in pyproject.toml to ensure
compatibility with the new API.
2026-01-17 23:12:04 +09:00
Koichi ITO
f1eedf2b7e
Merge pull request #3216 from modelcontextprotocol/dependabot/npm_and_yarn/npm_and_yarn-aabe4e74ca
Bump diff from 5.2.0 to 8.0.3 in the npm_and_yarn group across 1 directory
2026-01-17 08:24:59 +09:00
dependabot[bot]
3d6c7c1391
Bump diff in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [diff](https://github.com/kpdecker/jsdiff).


Updates `diff` from 5.2.0 to 8.0.3
- [Changelog](https://github.com/kpdecker/jsdiff/blob/master/release-notes.md)
- [Commits](https://github.com/kpdecker/jsdiff/compare/v5.2.0...v8.0.3)

---
updated-dependencies:
- dependency-name: diff
  dependency-version: 8.0.3
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-14 22:23:10 +00:00
David Soria Parra
72e11113ed
Merge pull request #3213 from SashankMeka1/kg-type-loading-fix
remove type from loading
2026-01-14 17:15:29 +00:00
Sashank Meka
8af50b9418 remove type from loading 2026-01-13 22:02:20 -05:00
Adam Jones
6b36e3c223
chore: update licensing to Apache 2.0 for new contributions 2026-01-12 22:50:22 +00:00
olaservo
c743a10da0 feat(everything): add tool-level annotations to get-annotated-message
Add readOnlyHint, destructiveHint, idempotentHint, and openWorldHint
annotations to the tool config. Update docs to reflect that this tool
now demonstrates both tool-level and content annotations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 07:48:43 -07:00
Ola Hungerford
861c11b786
Merge pull request #3200 from cliffhall/roots-is-optional
Everything server - Fix error when referring to roots
2026-01-10 18:26:12 -07:00
cliffhall
677f40a38f In roots.ts, clientCapabilites.roots and response.roots are optional.
Fixes #2818
2026-01-10 17:40:58 -05:00
cliffhall
7300631a5c In roots.ts, clientCapabilites.roots and response.roots are optional.
Fixes #2818
2026-01-10 17:32:20 -05:00
olaservo
9d863fb7e6 feat: add async sampling and elicitation tools
Add tools that demonstrate bidirectional MCP tasks where the server
sends requests to the client for async execution:

- trigger-sampling-request-async: Send sampling request with task
  params, client creates task and executes LLM call in background,
  server polls for completion and retrieves result

- trigger-elicitation-request-async: Same pattern for user input,
  useful when user may take time to fill out forms

Both tools:
- Check client capabilities (tasks.requests.sampling/elicitation)
- Accept both CreateTaskResult and direct result responses
- Poll tasks/get for status updates
- Fetch final result via tasks/result

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 09:14:30 -07:00
olaservo
0208e93f85 feat(everything): add SEP-1686 Tasks support
- Add tasks capability with list, cancel, and requests.tools.call
- Add InMemoryTaskStore and InMemoryTaskMessageQueue from SDK experimental
- Add simulate-research-query tool demonstrating task lifecycle
- Task demonstrates working -> input_required -> completed status flow
- Uses elicitation for ambiguous queries when client supports it

Closes #3037

🦉 Generated with [Claude Code](https://claude.ai/code)
2026-01-09 06:48:53 -07:00
Ola Hungerford
9691b958ec
Merge pull request #3189 from modelcontextprotocol/dependabot/npm_and_yarn/npm_and_yarn-1719578bf6
Bump @modelcontextprotocol/sdk from 1.24.0 to 1.25.2 in the npm_and_yarn group across 1 directory
2026-01-07 11:18:17 -07:00
dependabot[bot]
737ce98e4a
Bump @modelcontextprotocol/sdk
Bumps the npm_and_yarn group with 1 update in the / directory: [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk).


Updates `@modelcontextprotocol/sdk` from 1.24.0 to 1.25.2
- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases)
- [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/1.24.0...v1.25.2)

---
updated-dependencies:
- dependency-name: "@modelcontextprotocol/sdk"
  dependency-version: 1.25.2
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-07 16:49:05 +00:00
Adam Jones
37b2926d2f
Fix YAML syntax error in readme-pr-check workflow
The template literal body had no indentation, which broke YAML's
block literal parsing. Use array.join('\n') instead.
2026-01-06 14:38:04 +00:00
Ola Hungerford
425869346f
Merge pull request #3184 from modelcontextprotocol/adamj/readme-pr-check
Add workflow to handle README-only PRs
2026-01-05 21:33:32 -07:00
Adam Jones
dca1e7ed6f
Add workflow to handle README-only PRs
Adds a GitHub Actions workflow that:
- Detects PRs that only modify README.md
- Comments explaining we no longer accept new server additions
- Directs contributors to the MCP registry instead
- Allows updates/removals via /i-promise-this-is-not-a-new-server
- Uses labels (readme: pending / readme: ready for review) for filtering
- Minimizes bot comment after confirmation to reduce clutter

Claude-Generated-By: Claude Code (cli/claude-opus-4-5=100%)
Claude-Steers: 10
Claude-Permission-Prompts: 0
Claude-Escapes: 0
2026-01-05 18:53:30 +00:00
tomonacci
1ae217d74d
Remove only trailing slashes (#3183) 2026-01-05 18:42:10 +00:00
Ola Hungerford
862e717ff7
Merge pull request #3164 from 0dd/fix-git-add-validation
Add Path validation
2026-01-04 13:18:50 -07:00
Aonan Guan
3827fd00b3 Merge remote-tracking branch 'origin/fix-git-add-validation' into fix-git-add-validation
# Conflicts:
#	src/git/src/mcp_server_git/server.py
2025-12-29 16:05:35 -08:00
Aonan Guan
db96050800 git: improve file path validation in add operation
Use Git CLI directly instead of GitPython index API to ensure proper
path validation and prevent option injection. The '--' separator ensures
file paths starting with '-' are handled correctly.
2025-12-29 16:04:31 -08:00
Aonan Guan
3269185eb7 git: improve file path validation in add operation
Add validation to ensure file paths are within repository boundaries
before staging. This prevents potential issues with relative paths
and improves overall robustness of the git_add function.
2025-12-29 15:33:42 -08:00
Cliff Hall
dcb47d2d94
Merge pull request #3121 from cliffhall/new-everything-server
New everything server
2025-12-19 12:39:55 -05:00
cliffhall
44faf3a200 Remove console log statements 2025-12-19 10:18:55 -05:00
Cliff Hall
53cc385d4e
Update src/everything/AGENTS.md
Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-12-18 15:03:44 -05:00
Cliff Hall
5fb7a71083
Merge branch 'main' into new-everything-server 2025-12-18 11:46:12 -05:00
Paul Carleton
c7d60d635a
fix: use --frozen instead of --locked in release workflow (#3140)
* fix: regenerate uv.lock after version bump in release script

When the release script bumps the version in pyproject.toml, it needs
to also regenerate the uv.lock file. Otherwise the lockfile becomes
out of sync and `uv sync --locked` fails in CI with:
"The lockfile at uv.lock needs to be updated"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: use --frozen instead of --locked in release workflow

The release script bumps the version in pyproject.toml, which causes
the lockfile to be out of sync (uv includes the package's own version
in the lockfile). Using --frozen skips the lockfile freshness check
while still using pinned dependency versions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-18 16:25:49 +00:00
Paul Carleton
bd858d6745
fix: add contents write permission to update-packages job (#3138)
The update-packages job needs to push tags to the repository but was
missing the required `permissions: contents: write`. This caused the
workflow to fail with a 403 error when trying to push the version tag.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-18 14:17:16 +00:00
Felix Weinberger
4750df40c7
Merge pull request #3139 from modelcontextprotocol/fix-git-server-pyright-errors
fix(git): import BadName directly to fix pyright errors
2025-12-18 15:03:02 +01:00
Paul Carleton
88320daffa
fix(git): import BadName directly to fix pyright errors
Import `BadName` from `git.exc` directly instead of accessing it via
`git.exc.BadName`, which pyright doesn't recognize as a valid attribute
access on the `git` module.

This fixes the pyright CI failures introduced by the recent security
patches (GHSA merges).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 13:22:52 +00:00
cliffhall
17aaa455bb Sync roots at startup. This was deferred to list_roots tool is used, but I'm putting it back.
* In server/roots.ts
  - Updated function doc
2025-12-17 17:49:35 -05:00
cliffhall
f8933ec3e6 Sync roots at startup. This was deferred to list_roots tool is used, but I'm putting it back.
The syncRoots call should be idempotent, requesting roots if they haven't been yet for the session, but always retuning the cached roots otherwise. That could be deferred but setting the handler for roots_list changed note should not.

* In server/roots.ts
  - only set the notification handler and call for initial roots list if the roots aren't already cached for this client.

* In server/index.ts
  - in the oninitialized handler
    - get the sessionId from the transport
    - set a 350ms timeout to call syncRoots with the server and sessionId
      - this delay cause it to run after the `notifications/initialized` handler finishes, otherwise, the request gets lost.

* All other changes attributable to prettier
2025-12-17 17:46:24 -05:00
Cliff Hall
17a2be2320
Merge branch 'main' into new-everything-server 2025-12-17 16:02:56 -05:00
Jenn Newton
a37158bc15
Merge commit from fork
Validate that repo_path arguments in tool calls are within the
configured --repository path when the --repository flag is set.

The fix:
- Adds validate_repo_path() that resolves paths and checks
  containment using Path.relative_to()
- Resolves symlinks before comparison
- Maintains backward compatibility when --repository is not set

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Paul Carleton <paulc@anthropic.com>
2025-12-17 16:04:30 +00:00
Jenn Newton
9e5d5b8e4b
Merge commit from fork
Add validation to reject arguments starting with '-' and verify
arguments resolve to valid git refs via rev_parse before passing
to git CLI commands. This prevents flag-like values from being
interpreted as command-line options (e.g., --output=/path/to/file).

CWE-88: Improper Neutralization of Argument Delimiters in a Command

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-17 16:01:19 +00:00
Koichi ITO
d9c45477cd
Merge pull request #3124 from DeanMauro/patch-2
Update Trade Agent entry in README
2025-12-17 10:20:48 +09:00
Neel Patel
1432d05156
Update README.md existing Moorcheh server (#3105)
* Update README.md existing Moorcheh server

* update description
2025-12-16 21:54:47 +00:00
cliffhall
c6daef707a Get roots unconditionally when syncRoots is called
* In server/roots.ts
  - in syncRoots, if roots are supported fetch them

* In get-roots-list.ts,
  - Don't import and inspect current roots map, just call syncRoots to get the list.
2025-12-15 19:37:56 -05:00
cliffhall
1b8f376b90 Demonstrate registration of tools conditioned upon client capability support. Also, obviated need for clientConnected callback to pass sessionId because we defer initial fetching of roots happens when you run the get-roots-list tool.
* In how-it-works.md,
  - added a section on conditional tool registration

* In server/index.ts
  - import registerConditionalTools
  - in an oninitialized handler for the server, call registerConditionalTools
  - removed clientConnected from ServerFactoryResponse and all mentions in docs

* In tools/index.ts
  - export a registerConditionalTools function
  - refactor/move calls to registerGetRootsListTool, registerTriggerElicitationRequestTool, and registerTriggerSamplingRequestTool out of registerTools and into registerConditionalTools

* In server/roots.ts
  - only act if client supports roots
  - remove setInterval from call to requestRoots. It isn't happening during the initialze handshake anymore, so it doesn't interfere with that process if called immediaately

* In get-roots-list.ts, trigger-elicitation-request.ts, and trigger-sampling-request.ts,
  - only register tool if client supports capability

* Throughout the rest of the files, removing all references to `clientConnected`
2025-12-15 17:51:30 -05:00
cliffhall
ebac6314cf Updated server instructions.md. See https://github.com/modelcontextprotocol/servers/pull/3121#discussion_r2616651611 2025-12-15 17:04:59 -05:00
cliffhall
8758a11b37 Updated server instructions.md. See https://github.com/modelcontextprotocol/servers/pull/3121#discussion_r2616651611 2025-12-15 17:04:35 -05:00
cliffhall
734d5c3ebb Updated server instructions.md. See https://github.com/modelcontextprotocol/servers/pull/3121#discussion_r2616651611 2025-12-15 17:01:33 -05:00
cliffhall
70feb6f2b0 Remove includeContext: "thisServer" from CreateMessageRequest in trigger-sampling-request.ts 2025-12-15 14:40:11 -05:00
cliffhall
e0f1c42159 Add listChanged capability for tools, prompts, and resources in servers/index.ts 2025-12-15 14:39:20 -05:00
Dean Mauro
9a437181d9
Update Trade Agent to Trade It in README
Trade Agent has rebranded to Trade It. I've updated the entry to match.
2025-12-14 22:31:17 -05:00
cliffhall
cdbcdc551a Cache roots in get-roots-list.ts if list was not already present and had to be requested. 2025-12-13 16:25:28 -05:00
cliffhall
20527e4175 Updated doc in all tools 2025-12-13 15:55:07 -05:00
cliffhall
7b8592538f Updated doc in all tools 2025-12-13 15:52:32 -05:00
cliffhall
eed70bbbda Updated doc in trigger-sampling-request.ts 2025-12-13 15:48:41 -05:00
cliffhall
0ba86f8d4f Updated doc in echo.ts 2025-12-13 15:48:13 -05:00
cliffhall
29a20bfd0a Updated doc in get-annotated-message.ts 2025-12-13 15:46:57 -05:00
cliffhall
82cda366d6 Updated doc in get-env.ts 2025-12-13 15:45:24 -05:00
cliffhall
6ad8af7130 Updated doc in get-resource-reference.ts 2025-12-13 15:44:17 -05:00
cliffhall
8126179a0a Run pretter:fix 2025-12-13 15:43:00 -05:00
cliffhall
e1c1dcfac8 Use roots cache in get-roots-list tool
* In get-roots-list.ts, query the server's cache of the latest roots from the client and only request the list from the client if it doesn't exist.
* In roots.ts, export the roots map
2025-12-13 15:42:24 -05:00
cliffhall
6854902775 Use roots cache in get-roots-list tool
* In get-roots-list.ts, query the server's cache of the latest roots from the client and only request the list from the client if it doesn't exist.
* In roots.ts, export the roots map
2025-12-13 15:41:44 -05:00
cliffhall
77deef08ce Update doc in tools/gzip-file-as-resource.ts 2025-12-13 15:24:10 -05:00
cliffhall
cd5b728fb6 Update doc in tools/toggle-subscriber-updates.ts 2025-12-13 15:21:38 -05:00
cliffhall
ba098427d6 Update doc in tools/toggle-subscriber-updates.ts 2025-12-13 15:19:26 -05:00
cliffhall
45ea1e21f9 Update doc in tools/toggle-subscriber-updates.ts 2025-12-13 15:18:15 -05:00
cliffhall
b8074f9b9c Update doc in tools/trigger-elicitation-request.ts and trigger-long-running-operation.ts 2025-12-13 15:16:37 -05:00
cliffhall
8291c0b290 Update doc in tools/trigger-elicitation-request.ts 2025-12-13 15:12:51 -05:00
cliffhall
00b8c539f8 Update doc in tools/trigger-long-running-operation.ts 2025-12-13 15:11:12 -05:00
cliffhall
3f5e5cfb81 Update doc in tools/trigger-elicitation-request.ts 2025-12-13 15:09:26 -05:00
cliffhall
299aae2f4b Update doc in tools/toggle-subscriber-updates.ts 2025-12-13 15:07:13 -05:00
cliffhall
cb5f70cf20 Update doc in server/index.ts 2025-12-13 15:00:18 -05:00
cliffhall
90d1b664ee Update doc in server/index.ts 2025-12-13 14:58:49 -05:00
cliffhall
79c4e51038 Update README.md and doc in server/index.ts 2025-12-13 14:56:36 -05:00
cliffhall
a235ed8016 Updated package.json and ran prettier 2025-12-13 14:33:16 -05:00
cliffhall
919b2e0138 Updated AGENTS.md with guidance on tool naming 2025-12-13 14:24:38 -05:00
cliffhall
2b60822057 Refactor-renamed long-running-operation.ts to trigger-long-running-operation.ts 2025-12-13 14:20:24 -05:00
cliffhall
a008d9fee6 Updated structure.md 2025-12-13 11:42:23 -05:00
cliffhall
c5999b5a21 Merge branch 'main' into new-everything-server
# Conflicts:
#	Removed src/everything/everything.ts
2025-12-13 11:22:21 -05:00
cliffhall
f561f70002 [WIP] Refactor everything server to be more modular and use recommended APIs.
* Updated docs

* Refactor/renamed toggle-logging.ts to toggle-simulated-logging.ts
  - refactor/renamed registerToggleLoggingTool to registerToggleSimulatedLoggingTool
2025-12-13 10:59:35 -05:00
cliffhall
19e588bdcb [WIP] Refactor everything server to be more modular and use recommended APIs.
Updated structure.md
2025-12-13 10:20:16 -05:00
cliffhall
115789036a [WIP] Refactor everything server to be more modular and use recommended APIs.
Updated docs

* Refactor/renamed CLAUDE.md to AGENTS.md
* Updated instructions.md and startup.md
2025-12-13 10:03:21 -05:00
cliffhall
2093f2dfac [WIP] Refactor everything server to be more modular and use recommended APIs.
Updated README.md
2025-12-12 20:16:07 -05:00
cliffhall
9b25a3a41b [WIP] Refactor everything server to be more modular and use recommended APIs.
Finalized Roots list changed handling and initial request. Final fit and finish work.

* Updated architecture.md
  - Added links to other docs
  - Refactor/extracted sections into extension.md, features.md, how-it-works.md, startup.md, and structure.md

* Removed everything.ts
  - all features are ported

* In roots.ts
  - refactor/renaned setRootsListChangedHandler to syncRoots
  - refactor handler logic to requestRoots function
  - Calls for roots list directly to get initial list

* In server/index.ts
  - import setRootsListChangedHandler
  - in clientConnected callback
    - call setRootsListChangedHandler passing server and sessionId

* In sse.ts, stdio.ts, and streamableHttp.ts
  - update inline and function docs

* In index.ts,
  - updated usage output

* In server/index.ts
  - refactor/extracted readInstructions to resources/index.ts
  - defined ServerFactoryResponse response type
2025-12-12 20:12:18 -05:00
Ola Hungerford
792c47442d
Merge pull request #3097 from cliffhall/sep-1330-enums
Update Everything server's elicitation request
2025-12-11 21:05:59 -07:00
cliffhall
cb073d877a [WIP] Refactor everything server to be more modular and use recommended APIs.
Adding Trigger Elicitation Request and Get Roots List tools

* Updated architecture.md

* Added roots.ts
  - tracks roots by sessionId
  - setRootsListChangedHandler
    - listens for roots changed notification from the client
      - updates the roots map by sessionId
      - sends log notification or error to the client

* In server/index.ts
  - import setRootsListChangedHandler
  - in clientConnected callback
    - call setRootsListChangedHandler passing server and sessionId

* In sse.ts, stdio.ts, and streamableHttp.ts
  - receive clientConnected from server factory
  - call clientConnected when server is connected to transport
* Added get-roots-list.ts
  - registerGetRootsListTool
    - Registers the 'get-roots-list' tool with the given MCP server.

* Added trigger-elicitation-request.ts
  - registerTriggerElicitationRequestTool
    - registered tool sends an elicitation request that exercises all supported field types

* In tools/index.ts
  - imports registerTriggerElicitationRequestTool and registerGetRootsListTool
  - in registerTools
    - call registerTriggerElicitationRequestTool and registerGetRootsListTool, passing server
2025-12-11 20:25:46 -05:00
cliffhall
18ef6aa69b [WIP] Refactor everything server to be more modular and use recommended APIs.
Adding Trigger Elicitation Request and Get Roots List tools

* Updated architecture.md

* Added roots.ts
  - tracks roots by sessionId
  - setRootsListChangedHandler
    - listens for roots changed notification from the client
      - updates the roots map by sessionId
      - sends log notification or error to the client

* In server/index.ts
  - import setRootsListChangedHandler
  - in clientConnected callback
    - call setRootsListChangedHandler passing server and sessionId

* In sse.ts, stdio.ts, and streamableHttp.ts
  - receive clientConnected from server factory
  - call clientConnected when server is connected to transport
* Added get-roots-list.ts
  - registerGetRootsListTool
    - Registers the 'get-roots-list' tool with the given MCP server.

* Added trigger-elicitation-request.ts
  - registerTriggerElicitationRequestTool
    - registered tool sends an elicitation request that exercises all supported field types

* In tools/index.ts
  - imports registerTriggerElicitationRequestTool and registerGetRootsListTool
  - in registerTools
    - call registerTriggerElicitationRequestTool and registerGetRootsListTool, passing server
2025-12-11 20:25:37 -05:00
cliffhall
ea6fe271cd [WIP] Refactor everything server to be more modular and use recommended APIs.
Adding Trigger Elicitation Request tool

* Updated architecture.md

* Added trigger-elicitation-request.ts
  - registerTriggerElicitationRequestTool
    - registered tool sends an elicitation request that exercises all supported field types

* In tools/index.ts
  - imports registerTriggerElicitationRequestTool
  - in registerTools
    - call registerTriggerElicitationRequestTool passing server
2025-12-11 18:10:37 -05:00
Cliff Hall
8efd9a6bb8
Merge branch 'main' into sep-1330-enums 2025-12-11 17:52:10 -05:00
Cliff Hall
d3e1715088
Update src/everything/everything.ts
Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
2025-12-11 17:51:35 -05:00
Cliff Hall
40435bd7b2
Update src/everything/everything.ts
Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
2025-12-11 17:51:15 -05:00
cliffhall
339e056ea0 [WIP] Refactor everything server to be more modular and use recommended APIs.
* Updated architecture.md

* Refactor/renamed get-sampling-request.ts to trigger-sampling-request.ts
  - use trigger instead of get throughout

* In tools/index.ts
  - sorted display order
2025-12-11 17:39:25 -05:00
cliffhall
2afc618ccd [WIP] Refactor everything server to be more modular and use recommended APIs.
[WIP] Adding Gzip File as Resource tool

* Updated architecture.md

* Added gzip-file-as-resource.ts
  - imports getSessionResourceURI and  registerSessionResource from session.ts
  - exports registerGZipFileAsResourceTool
    - the registered tool
      - validates the input URI
      - fetches the file safely
      - compresses it
      - creates and registers the resource
      - returns resource or resource link

* In tools/index.ts
  - import registerGZipFileAsResourceTool
  - in registerTools,
    - call registerGZipFileAsResourceTool passing server

* Added resources/session.ts
  - getSessionResourceURI gets a uri to the specified name
  - registerSessionResource registers the session-scoped resource and returns a resource link
2025-12-11 17:23:27 -05:00
cliffhall
3d003abacb [WIP] Refactor everything server to be more modular and use recommended APIs.
[WIP] Adding Gzip File as Resource tool

* Updated architecture.md

* In resources/files.ts
  - remove 'Docs: ' from resource name

* In resources/templates.ts
  - use blob instead of text in resource content
2025-12-11 17:04:50 -05:00
Jeroen Overschie
f909dfab90
Update Prisma link in README.md (#3116) 2025-12-11 14:01:03 +00:00
AWOrpington
7a9546e98c
Fix svg location for Conductor entry in README (#3114)
The public hosting for the Orkes logo changed, necessitating this update.
2025-12-11 13:59:32 +00:00
DOSSEH Shalom
0040740b0d
Fix link for Binance MCP server in README (#3104) 2025-12-11 13:58:04 +00:00
Josip Antoliš
215730f1b0
Fix Infobip MCP server link (#3103) 2025-12-11 13:57:26 +00:00
Andrii Kravets
bd48cee3f4
Remove Openfort project from README (#3098)
Removed Openfort entry from the list of projects.
2025-12-11 13:56:25 +00:00
Ola Hungerford
968acc2ec9
fix(filesystem): return string in structuredContent to match outputSchema (#3113)
* fix(filesystem): return string in structuredContent to match outputSchema

The directory_tree, move_file, and list_directory_with_sizes tools were
returning an array in structuredContent.content, but outputSchema declares
content as z.string(). This caused MCP error -32602 validation failures.

Changed structuredContent from { content: [contentBlock] } to { content: text }
to match the declared outputSchema and be consistent with other filesystem
tools like list_directory and search_files.

Fixes #3110, #3106, #3093

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test(filesystem): add integration tests for structuredContent schema compliance

Adds tests to verify that directory_tree, list_directory_with_sizes, and
move_file tools return structuredContent.content as a string (matching
outputSchema) rather than an array.

These tests prevent regression of issues #3110, #3106, #3093.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-12-11 13:50:27 +00:00
Stefan Dirkse
e6933ca98b
Fix: Changed structuredContent output to match outputSchema (#3099) 2025-12-11 13:48:04 +00:00
Koichi ITO
44afe4c5d5
Merge pull request #3117 from joaommartins/bugfix/check-default-branch-name-in-tests
Fix test_git_diff to use dynamic branch name
2025-12-11 14:47:08 +09:00
cliffhall
48bf94a728 [WIP] Refactor everything server to be more modular and use recommended APIs.
* Updated architecture.md

* Refactor/renamed sampling-request.ts to get-sampling-request.ts

* In tools/index.ts
  - sorted presenation order
2025-12-10 16:58:25 -05:00
cliffhall
7acadf4ac9 [WIP] Refactor everything server to be more modular and use recommended APIs.
* Updated architecture.md
2025-12-10 16:24:46 -05:00
cliffhall
f759d9eaa1 [WIP] Refactor everything server to be more modular and use recommended APIs.
For tools where we seek to get some response from the server, renamed as an action, e.g., "Get Sum" rather than "Add" or "Get Annotated Message" rather than "Annotated Message", so that it's clear what the intent of the tool is in a quick review.

* Updated architecture.md

* Refactor/renamed add.ts to get-sum.ts
* Refactor/renamed annotated-message.ts to get-annotated-message.ts
* In tools/index.ts
  - sorted presentation order
2025-12-10 16:08:41 -05:00
cliffhall
904d0ea71f [WIP] Refactor everything server to be more modular and use recommended APIs.
Adding get-structured-content tool

* Updated architecture.md

* added get-structured-content.ts
  - Registers the 'get-structured-content' tool with the provided McpServer instance.
  - The registered tool processes incoming arguments using a predefined input schema,
    generates structured content with weather information including temperature,
    conditions, and humidity, and returns both backward-compatible content blocks
    and structured content in the response.
2025-12-09 20:11:29 -05:00
cliffhall
6cd26cf3df [WIP] Refactor everything server to be more modular and use recommended APIs.
* Updated architecture.md
2025-12-09 19:26:34 -05:00
cliffhall
27793ac93a [WIP] Refactor everything server to be more modular and use recommended APIs.
* In get-env.ts
  - update tool description
2025-12-09 19:26:04 -05:00
cliffhall
03d3da0d55 [WIP] Refactor everything server to be more modular and use recommended APIs.
Refactor/rename `print-env` tool to `get-env`

* Updated architecture.md

* Refactor rename print-env.ts to get-env.ts

* In tools/index.ts
  - reorder tools alphabetically
2025-12-09 19:24:39 -05:00
cliffhall
8530747606 [WIP] Refactor everything server to be more modular and use recommended APIs.
Adding the get-resource-reference and get-resource-reference tools

* Updated architecture.md

* Added get-resource-links.ts
  - Registers the 'get-resource-reference' tool with the provided McpServer instance.
  - The registered tool retrieves a specified number of resource links and their metadata.

* In get-resource-reference.ts
  - fixed tool description

* In tools/index.ts
  - import registerGetResourceLinksTool
  - in registerTool
    - call registerGetResourceLinksTool
2025-12-09 19:17:00 -05:00
João M. Martins
1b5f64e7e4
Fix test_git_diff to use dynamic branch name 2025-12-10 10:11:46 +11:00
cliffhall
320e3d8b25 [WIP] Refactor everything server to be more modular and use recommended APIs.
Adding the get-resource-reference tool

* Updated architecture.md

* In prompts/resource.ts
  - Refactor/extracted the prompt argument completers into exported functions in resources/templates.ts
  - Refactor/extracted BLOB_TYPE, TEXT_TYPE, and resourceTypes into exported constants in resources/templates.ts as RESOURCE_TYPE_BLOB, RESOURCE_TYPE_TEXT, and RESOURCE_TYPES
  - In resources/templates.ts
    - refactor renamed index to resourceId throughout for consistency with prompts and tool references
* Added tools/get-resource-reference.ts
  - Registers the 'get-resource-reference' tool with the provided McpServer instance.
  - uses enum and number schema for tools to provide resourceType and resourceId arguments. Completables don't work for tool arguments.
  - Returns the corresponding dynamic resource
* In tools/index.ts
  - imported registerGetResourceReferenceTool
  - in registerTools
    - called registerGetResourceReferenceTool
2025-12-09 17:47:38 -05:00
cliffhall
328a990163 [WIP] Refactor everything server to be more modular and use recommended APIs.
Adding the annotated message tool

* Updated architecture.md

* In annotated-message.ts
  - prettier
2025-12-09 16:56:00 -05:00
cliffhall
0bf6c6911d [WIP] Refactor everything server to be more modular and use recommended APIs.
Adding the annotated message tool

* Updated architecture.md

* Added annotated-message.ts
  - registers a tool that returns a message with annotations on different content types

* In package.json
  - updated TS SDK version
2025-12-09 12:17:08 -05:00
cliffhall
2ce87b168c [WIP] Refactor everything server to be more modular and use recommended APIs.
* Added git-tiny-image.ts
  - registers a tool that returns a tiny MCP logo

* In all other tools, updated function docs
2025-12-09 10:17:37 -05:00
cliffhall
08b6a501ce [WIP] Refactor everything server to be more modular and use recommended APIs.
* In sampling-request.ts
  - renamed SampleLLMSchema to SamplingRequestSchema
2025-12-09 09:12:42 -05:00
cliffhall
df844b5298 [WIP] Refactor everything server to be more modular and use recommended APIs.
* Updated architecture.md
2025-12-08 19:14:45 -05:00
cliffhall
0f3e27ef87 [WIP] Refactor everything server to be more modular and use recommended APIs.
Added print-env, and sampling-request tools

* Updated architecture.md

* In tools/index.ts
  - import registerPrintEnvTool and registerSamplingRequestTool
  - in registerTools
    - call registerPrintEnvTool and registerSamplingRequestTool

* Added tools/print-env.ts
  - registers a tool that takes no args and returns the environment variables

* Added tools/sampling-request
  - registers a tool that
    - takes prompt and maxTokens args
    - sends client a sampling request
    - returns the client response in the result
2025-12-08 19:14:06 -05:00
cliffhall
1df8623bcc [WIP] Refactor everything server to be more modular and use recommended APIs.
Added long-running-operation tool and improved comments in all tools

* Updated architecture.md

* In tools/
  - add.ts
  - echo.ts
  - toggle-logging.ts
  - toggle-subscriber-updates.ts
    - Add better function and inline docs

* Added tools/long-running-operation.ts
  - similar implementation as in everything v1

* In tools/index.ts
  - import registerLongRunningOperationTool
  - in registerTools
    - registerLongRunningOperationTool
2025-12-08 17:55:04 -05:00
cliffhall
346c29a086 [WIP] Refactor everything server to be more modular and use recommended APIs.
Added tools to toggle simulated logging and resource updates on and off rather than have them start immediately upon connection

* Updated architecture.md

* In server/index.ts
  - remove import of beginSimulatedResourceUpdates and beginSimulatedLogging
  - remove clientConnected from createServer factory result

* In tools/index.ts
  - import registerToggleLoggingTool and registerToggleSubscriberUpdatesTool
  - in registerTools
    - call registerToggleLoggingTool and registerToggleSubscriberUpdatesTool

* In logging.ts
  - in beginSimulatedLogging
    - refactor extract inline interval callback into function sendSimulatedLoggingMessage
  - call sendSimulatedLoggingMessage right away to send the first message
  - supply sendSimulatedLoggingMessage as interval callback

* In subscriptions.ts
  - remove import of Transport
  - remove transports map
  - in beginSimulatedResourceUpdates()
    - change arguments to server and sessionId
    - check for the subsUpdateInterval for the session
    - remove all transport storage and interaction
    - instead use the server to send the notification
 - in stopSimulatedResourceUpdates()
   - remove management of transports map

* In stdio.ts, sse.ts, and streamableHttp.ts
  - remove destructure and calling of clientConnected

* Added tools/toggle-logging.ts
  - registers a tool that
    - takes no arguments
    - tracks clients that have been enabled by session id in a set
    - if client isn't enabled,
       - calls beginSimulatedLogging
       - adds session id to client set
    - else
      - calls stopSimulatedLogging
      - deletes session id from client set
    - returns a message explaining what was done including what to expect when logging is enabled

 * Added tools/toggle-subscriber-updates.ts
   - registers a tool that
     - takes no arguments
     - tracks clients that have been enabled by session id in a set
     - if client isn't enabled,
        - calls beginSimulatedResourceUpdates
        - adds session id to client set
     - else
       - calls stopSimulatedResourceUpdates
       - deletes session id from client set
     - returns a message explaining what was done including what to expect when logging is enabled
2025-12-08 17:13:42 -05:00
cliffhall
16ed05957c [WIP] Refactor everything server to be more modular and use recommended APIs.
Adding simulated logging and refactoring subscriptions to not need to track transports

* Updated architecture.md

* In server/index.ts
  - remove import of Transport
  - import beginSimulatedLogging and stopSimulatedLogging
  - in clientConnected()
    - change argument to sessionId? instead of transport
    - add call to beginSimulatedLogging
    - send server and sessionId to beginSimulatedResourceUpdates and beginSimulatedLogging
  - in cleanup()
    - add call to stopSimulatedLogging passing sessionId

* Added server/logging.ts
  - Initialize logsUpdateIntervals to Map session ID to the interval for sending logging messages to the client
  - in beginSimulatedLogging()
    - create an array of logging meesages, customized with the sessionId if present
    - if the interval for the sessionId hasn't been set, create one, calling server.sendLoggingMessage with a random message to the client each time the interval elapses
  - in stopSimulatedLogging()
    - if a logging interval exists for the sessionId, clear it and remove it

* In subscriptions.ts
  - remove import of Transport
  - remove transports map
  - in beginSimulatedResourceUpdates()
    - change arguments to server and sessionId
    - check for the subsUpdateInterval for the session
    - remove all transport storage and interaction
    - instead use the server to send the notification
 - in stopSimulatedResourceUpdates()
   - remove management of transports map

* In sse.ts and streamableHttp.ts
  - when calling clientConnected, pass sessionId instead of transport

* In stdio.ts,
- when calling clientConnected, pass nothing instead of transport

* In subscriptions.ts
  - updated inline doc
2025-12-07 19:32:18 -05:00
Ola Hungerford
decb360cb7
fix: add missing allowed tools for Claude workflow (#3090)
Add mcp__mcp-docs and WebFetch to allowedTools so Claude can use
the MCP docs server and fetch schema content from GitHub URLs.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Cliff Hall <cliff@futurescale.com>
2025-12-07 23:15:55 +00:00
cliffhall
8559fbd5a4 [WIP] Refactor everything server to be more modular and use recommended APIs.
* In subscriptions.ts
  - updated inline doc
2025-12-07 00:34:39 -05:00
cliffhall
07867a5dd5 [WIP] Refactor everything server to be more modular and use recommended APIs.
Adding resource subscriptions:

* Updated architecture.md

* In server/index.ts
  - imported Transport, setSubscriptionHandlers,beginSimulatedResourceUpdates, and stopSimulatedResourceUpdates
  - call setSubscriptionHandlers passing server
  - in returned object,
    - refactor/renamed startNotificationIntervals placehodler to clientConnected, which takes a transport argument and calls beginSimulatedResourceUpdates, passing the transport
    - replaced cleanup placeholder with a function that takes an optional sessionId and calls stopSimulatedResourceUpdates, passing the sessionId

* In sse.ts, stdio.ts, and streamableHttp.ts
  - when transport is connected, called clientConnect, passing transport
  - when disconnecting, called cleanup, passing sessionId

* Added subscriptions.ts
  - tracks subscriber session id lists by URI
  - tracks transport by session id
  - tracks subscription update intervals by sessionId
  - in setSubscriptionHandlers
    - set request handlers for SubscribeRequestSchema and UnsubscribeRequestSchema
  - in beginSimulatedResourceUpdates
    - starts an interval to send updates to the transport for all subscribed resources
  - in stopSimulatedResourceUpdates
    - removes intervals and transport for gien session id
2025-12-06 19:44:07 -05:00
cliffhall
7b2ff6b064 [WIP] Refactor everything server to be more modular and use recommended APIs.
* Updated architecture.md

* Refactor/renamed static.ts to file.ts

* Refactor/renamed complex.ts to args.ts

* Refactor/renamed template.ts to templates.ts.

* In resource.ts,
  -  improved registerEmbeddedResourcePrompt to allow selection of blob or text resource type.

* In file.ts
  - refactor/renamed registerStaticResources to registerFileResources to highlight the fact that it is using files as resources.

* In args.ts
  - refactor/renamed registerComplexPrompt to registerArgumentsPrompt to highlight the fact that it is demonstrating prompt arguments.

* Updated inline documentation throughout
2025-12-06 15:48:39 -05:00
cliffhall
9084cd3a96 [WIP] Refactor everything server to be more modular and use recommended APIs.
* Ran prettier
2025-12-06 14:17:07 -05:00
cliffhall
0aeb8a794d [WIP] Refactor everything server to be more modular and use recommended APIs.
* Updated architecture.md

* Refactor/renamed resources/dynamic.ts to resources/template.ts
  - refactor/renamed registerDynamicResources to registerResourceTemplates
    - this highlights the more salient fact that we are demonstrating registration of resource templates in this example.
  - exposed the ability to dynamically create the text resources from elsewhere (namely the resource-prompt example

* Added prompts/resource.ts
  - in registerEmbeddedResourcePrompt()
    - register a prompt that takes a resourceId and returns the prompt with the corresponding dynamically created resource embedded
2025-12-06 12:50:09 -05:00
Ola Hungerford
05f506b3b1
Merge pull request #3108 from a-akimov/remove-vscode
Remove .vscode settings and add them to .gitignore
2025-12-06 08:46:58 -07:00
Alex Akimov
a425e0e090 Ignore the .vscode folder 2025-12-06 15:29:46 +01:00
Alex Akimov
a5456376be Remove vscode-related settings 2025-12-06 15:27:36 +01:00
cliffhall
743529180e [WIP] Refactor everything server to be more modular and use recommended APIs.
* Updated architecture.md

* Refactor / renamed uris from test://X/resource/Y to demo://resource/X/Y
2025-12-05 18:54:30 -05:00
cliffhall
eee9866ebb [WIP] Refactor everything server to be more modular and use recommended APIs.
* Updated architecture.md

* Refactor / renamed all addXPrompt, addXTool, and addXResource functions to registerX...

* Added the add tool
2025-12-05 18:43:36 -05:00
cliffhall
d868b1c8ac [WIP] Refactor everything server to be more modular and use recommended APIs.
* Updated architecture.md
2025-12-05 16:22:59 -05:00
cliffhall
daec74fbc1 [WIP] Refactor everything server to be more modular and use recommended APIs.
* Adding prompts (simple, complex, with completions)

* Add prompts/simple.ts
  - in addSimplePrompt()
    - register a simple prompt with no arguments

* Add prompts/complex.ts
  - in addComplexPrompt()
    - define promptArgsSchema containing a required city arg of type string and an optional state arg of type state
    - register the complex prompt with a prompt callback that combines the city and state into a prompt asking for the weather in that location

* Add prompts/completions.ts
  - in addPromptWithCompletions()
    - define promptArgsSchema containing department and name string fields with completion handlers
    - register the completable prompt with a prompt callback that combines the inputs into a prompt asking to promote the selected name to head of the selected department

* Add prompts/index.ts
  - import addSimplePrompt, addComplexPrompt, and addPromptWithCompletions
  - export registerPrompts function
  - in registerPrompts()
    - call addSimplePrompt
    - call addComplexPrompt
    - call addPromptWithCompletions

* In package.json
  - add prettier devDependency
  - add prettier:check script
  - add prettier:fix script
  - in build script, copy docs folder to dist

* All other changes were prettier formatting
2025-12-05 16:09:35 -05:00
cliffhall
1c64b36c78 [WIP] Refactor everything server to be more modular and use recommended APIs.
* Adding static resources, move server instructions to
the new docs folder, and add code formatting

* Add docs folder

* Add docs/architecture.md which describes the architecture of the project thus far.

* Refactor moved instructions.md to docs/server-instructions.md

* Add resources/static.ts
  - in addStaticResources()
    - read the file entries from the docs folder
    - register each file as a resource (no template), with a readResource function that reads the file and returns it in a contents block with the appropriate mime type and contents
  - getMimeType helper function gets the mime type for a filename
  - readSafe helper function reads the file synchronously as utf-8 or returns an error string

* Add resources/index.ts
  - import addStaticResources
  - export registerResources function
  - in registerResources()
    - call addStaticResources

* In package.json
  - add prettier devDependency
  - add prettier:check script
  - add prettier:fix script
  - in build script, copy docs folder to dist

* All other changes were prettier formatting
2025-12-05 13:26:08 -05:00
cliffhall
8845118d61 [WIP] Refactor everything server to be more modular and use recommended APIs.
* Adding dynamic resources

* Add server/index.js
  - import registerResources from resources/index.js
  - in createServer()
    - call registerResources, passing server

* Add resources/dynamic.ts
  - in addDynamicResources()
    - define formatGmtTimestamp to create a time stamp to include in the resource text or encoded blob
    - define parseIndex to ensure the index variable of the URI is a number

* Add resources/index.ts
  - import addDynamicResources
  - export registerResources function
  - in registerResources()
    - call addDynamicResources

* In package.json
  - update the start commands to launch each of the transports properly
2025-12-04 19:01:18 -05:00
cliffhall
5de886ca63 [WIP] Refactor everything server to be more modular and use recommended APIs
In src/everything:

* Refactor / move streamableHttp.ts, sse.ts, and stdio.ts to transports/

* Move everything.ts to server/ for reference

* Add server/index.js
  - exports the createServer function
  - import registerTools from tools/index.js
  - in createServer()
    - read instructions.md and include in ServerOptions for McpServer constructor
    - construct McpServer instead of Server
    - call registerTools, passing server

* Add tools/echo.ts
  - define EchoSchema
  - define tool config
  - export addToolEcho function
  - in addToolEcho()
    - register handler for Echo tool

* Add tools/index.ts
  - import addToolEcho
  - export registerTools function
  - in registerTools()
    - call addToolEcho
2025-12-03 17:36:47 -05:00
cliffhall
bdb8b451d1 Update Everything server's elicitation request
* In everything.ts
  - In elcitiation request,
    - Update all fields to have a title property
    - Add all 5 enum types supported by the SDK
      - legacy titled single select
      - titled single select
      - titled multi select
      - untitled single select
      - untitled multi select
    - Use faux ids (e.g., hero-1, hero-2) for enum value when titled to illustrate the difference.
2025-12-02 19:43:01 -05:00
Koichi ITO
b7e1cf3a79
Merge pull request #3096 from modelcontextprotocol/dependabot/npm_and_yarn/npm_and_yarn-68057ba13a
chore(deps): bump @modelcontextprotocol/sdk from 1.23.0 to 1.24.0 in the npm_and_yarn group across 1 directory
2025-12-03 07:15:42 +09:00
dependabot[bot]
1c654a4e7d
chore(deps): bump @modelcontextprotocol/sdk
Bumps the npm_and_yarn group with 1 update in the / directory: [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk).


Updates `@modelcontextprotocol/sdk` from 1.23.0 to 1.24.0
- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases)
- [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/1.23.0...1.24.0)

---
updated-dependencies:
- dependency-name: "@modelcontextprotocol/sdk"
  dependency-version: 1.24.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-02 17:40:23 +00:00
Koichi ITO
7a21d7c460
Merge pull request #3095 from modelcontextprotocol/dependabot/npm_and_yarn/npm_and_yarn-6c4b93b8de
chore(deps): bump express from 4.21.2 to 4.22.0 in the npm_and_yarn group across 1 directory
2025-12-02 12:39:41 +09:00
dependabot[bot]
8dbea85ccf
chore(deps): bump express in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [express](https://github.com/expressjs/express).


Updates `express` from 4.21.2 to 4.22.0
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.22.0/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.21.2...4.22.0)

---
updated-dependencies:
- dependency-name: express
  dependency-version: 4.22.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 22:17:03 +00:00
Carney Wu
d1d6a123c6
add useless toolkit mcp servers (#3071)
* add useless toolkit mcp servers

* change postion

move from community group to official group

* Move Toolkit from official group to community group

Move Toolkit from official group to community group
2025-11-27 10:01:03 +00:00
mrumm
300012c689
Add AI Endurance MCP server to README (#3042)
* Add AI Endurance MCP server to README: AI-powered training platform for endurance athletes with 20 tools including workout management, activity analysis, performance predictions, and recovery tracking. Supports cycling, running, and triathlon.

* Move AI Endurance to community servers
2025-11-27 10:00:56 +00:00
Lex Vorona
9b91729fe4
Add Atono MCP Server to the list (#3069)
* Add Atono MCP to the list

* Shorten the description
2025-11-26 18:36:07 +00:00
Ola Hungerford
8b80372f4e
Merge pull request #3078 from olaservo/add-mcp-docs-server
Add MCP docs server to Claude Code GitHub Action
2025-11-26 10:42:36 -07:00
Vatsa Shah
1abe62ef6d
Add Uno Platform MCP (#3070)
* Add Uno Platform MCP

* Update logo and description
2025-11-26 17:07:44 +00:00
olaservo
57039bedf1 Add MCP docs server to Claude Code GitHub Action
- Add .mcp.json with mcp-docs HTTP server configuration
- Update claude.yml to load MCP server config with --mcp-config
- Change --system-prompt to --append-system-prompt to preserve defaults
- Extend instructions to use mcp-docs for MCP-related work

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 07:47:50 -07:00
Leone.Y
5f3e03de1d
Add TCSAS-devtools AI ToolKit to Official Integrations (#3058)
* Add TCSAS-devtools AI ToolKit to Official Integrations

* align alphabetical order

---------

Co-authored-by: zhangyi <leoneyzhang@tencent.com>
2025-11-26 14:41:25 +00:00
adam jones
d9929014d5
Add mcpName and repository fields for MCP registry (#3068)
Adds metadata required for registering servers in the MCP registry:

- NPM servers (everything, filesystem, memory, sequentialthinking):
  Added mcpName and repository fields to package.json

- PyPI servers (fetch, git, time):
  Added mcp-name comment to README.md

Part of #3047
2025-11-26 14:29:36 +00:00
GoMakers
2c6684dda9
Add Google Analytics 4 to Community Servers (#3052)
* Add Google Analytics 4 to Community Servers

* Move Google Analytics 4 to Community Servers section

* Remove extra blank line

---------

Co-authored-by: leonardosepulvedat <lsepulvedatabares@gmail.com>
2025-11-26 14:23:01 +00:00
Ola Hungerford
90369c8ad9
Merge pull request #3046 from olaservo/update-pr-template-deprecate-readme
docs: update PR template to deprecate README and promote MCP Registry
2025-11-26 07:06:04 -07:00
eeppodolak
a10de645e8
Elastic Email name fix (#3075)
* Add MCP Elastic Email to Third Party Servers

* Update README.md - Elastic Email name fix
2025-11-26 13:18:35 +00:00
dependabot[bot]
c017f44ee2
chore(deps): bump glob in the npm_and_yarn group across 1 directory (#3076)
Bumps the npm_and_yarn group with 1 update in the / directory: [glob](https://github.com/isaacs/node-glob).


Updates `glob` from 10.4.5 to 10.5.0
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.4.5...v10.5.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 10.5.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-26 13:18:16 +00:00
石秉修(PING-HSIU SHIH)
cf59c0dcf7
Add pgtuner_mcp to Community Servers (#3059)
* add pgtuner_mcp mcp server in README.md

* make alphabetical order
2025-11-26 12:35:42 +00:00
Joseph Wright
dde7e6e6d6
Adding Semilattice MCP to README.md (#3028)
* Adding Semilattice MCP to README.md

* Remove "- audience prediction" from Semilattice MCP name

Co-authored-by: adam jones <domdomegg+git@gmail.com>

---------

Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-11-26 12:33:28 +00:00
Tony
816bec4e12
Add Agent Interviews and MCP Bundles Hub to Community Servers (#3038)
- Agent Interviews: AI-powered qualitative research platform
- MCP Bundles Hub: Discovery and management platform with 500+ MCP provider integrations

Moved to Community Servers section per reviewer feedback.
2025-11-26 12:33:02 +00:00
adam jones
3154518344
Update @modelcontextprotocol/sdk to 1.23.0 in TypeScript servers (#3065)
Update the SDK from ^1.19.1 to ^1.23.0 in all TypeScript reference servers:
- everything
- filesystem
- memory
- sequentialthinking

Also update everything server for SDK breaking changes:
- Update zod to ^3.25.0 (zod v4 compatibility)
- Fix ToolInput/ToolOutput types to use Tool["inputSchema"] instead of
  inferring from zod schemas
- Fix result.content handling to support array format

Co-authored-by: Felix Weinberger <3823880+felixweinberger@users.noreply.github.com>
2025-11-26 12:32:37 +00:00
Ola Hungerford
80a16e5e95
Merge pull request #3066 from modelcontextprotocol/adamj/fix-vscode-mcp-docs-url
Fix VS Code MCP documentation URLs
2025-11-25 17:51:33 -07:00
Adam Jones
350ffeec01
Fix VS Code MCP documentation URLs
Update links to point to the new location at /docs/copilot/customization/mcp-servers
2025-11-25 22:11:56 +00:00
Adam Jones
78e0088ebd
fix(fetch): update uv.lock to sync with pyproject.toml
The lockfile was out of sync because pyproject.toml was updated
(version bump to 0.6.3, httpx<0.28 constraint) but uv.lock wasn't
regenerated. This became a CI failure after switching from --frozen
to --locked in #1852.
2025-11-25 21:52:09 +00:00
Nick Pape
76dcff0617
Fix a lifecycle bug with server everything in stdio mode (#2848) 2025-11-25 21:50:31 +00:00
Nas A.
8e0c890337
Add Wekan MCP server to README (#2966)
* Add Wekan MCP server to README

* Update README.md

moved to community server
2025-11-25 21:45:55 +00:00
UmakanthKaspa
2f93d3c717
Add comprehensive tests for git server functions (#2970)
- Add tests for git_diff_unstaged, git_diff_staged, and git_diff
- Add tests for git_commit and git_reset operations
- Add tests for git_log with different parameters
- Add tests for git_create_branch with base branch support
- Add tests for git_show including initial commit edge case
- Achieve 100% test coverage of git server functions (12/12)
- All 23 tests pass with 0 errors
2025-11-25 21:43:09 +00:00
Eugene Mwangi
9758f34d36
chore(uv): Prefer --locked for dependency sync (#1852)
Adopt uv best practice for dependency synchronization.

[Note]
- (uv sync --frozen) proceeds with an out-dated lockfile.
  This could lead to inconsistencies.

[Docs]
See: https://docs.astral.sh/uv/concepts/projects/sync/#locking-and-syncing
2025-11-25 21:36:35 +00:00
Shakeel Bhamani
db46aaac85
Add Arr Suite and Restream MCP servers to community registry (#2977)
- Added Arr Suite MCP server for Plex and *arr media automation suite
- Added Restream MCP server for multi-platform live streaming management
- Both servers added in alphabetical order to Community Servers section
2025-11-25 21:31:39 +00:00
Michael Oglesby
fe6717439c
Add NetApp MCP server link (#2978) 2025-11-25 21:31:02 +00:00
Zach Fine
068e28509c
Add Plus AI MCP server description to README (#2992) 2025-11-25 21:29:50 +00:00
Alex Oprisan
8e804d3066
Add HOPX MCP server to official integrations (#2993) 2025-11-25 21:29:22 +00:00
Snow W. Lee (Sungwon)
ac19dd7571
Add Runbear MCP client to README.md (#2994) 2025-11-25 21:28:27 +00:00
Ho Hieu
fa3cbb58cf
docs(README): add Notifly MCP Server to Official Integrations (#2998) 2025-11-25 21:27:13 +00:00
Ho Hieu
78496bf305
docs: add Clix MCP Server to Official Integrations (#2999) 2025-11-25 21:26:41 +00:00
Anton Kutishevsky
816fbbe755
feat: Added Withings MCP server for health data analysis (#3011) 2025-11-25 21:26:14 +00:00
Martin Schultheiß
949314f55f
Add Context Processor to Third-Party Servers (#3062)
* Add Context Processor to Third-Party Servers

- Intelligent context management MCP server
- Configurable pre-processing strategies (clarify, analyze, search, fetch)
- Published on npm at context-processor v1.0.0
- 81 passing tests with comprehensive documentation
- GitHub: https://github.com/mschultheiss83/context-processor

* Move Context Processor to Community Servers section

The reviewer requested moving Context Processor from Official Integrations
to Community Servers section, as it is a community-developed server rather
than an official company integration.
2025-11-25 21:24:31 +00:00
Manabu McCloskey
8916262b8b
add kubeflow spark mcp server (#2987)
Signed-off-by: Manabu McCloskey <manabu.mccloskey@gmail.com>
2025-11-25 21:13:46 +00:00
Peter Coppinger
7b3c569463
Add Success.co to readme.md (#2991) 2025-11-25 21:13:41 +00:00
Net-assembly
92e967672c
HTTP 402 implementation on Solana in an MCP server (#2986)
An MCP server that implements the HTTP 402 standard (client and server side).
2025-11-25 21:12:49 +00:00
paddywalsh
05052560f7
Add Diffusion MCP Server to official integrations (#2985)
Co-authored-by: Paddy Walsh <paddy.walsh@diffusiondata.com>
2025-11-25 21:11:51 +00:00
pranav-k
8c9a83a139
Add listing for Stardog MCP server (#2980) 2025-11-25 21:10:53 +00:00
Willian Pinho
a789dcb7f7
Add Large File MCP server to community servers (#2979) 2025-11-25 21:10:07 +00:00
Facundo Farias
5c06dbbf71
Add DeployHQ integration details to README (#2984)
Add deployhq-mcp-server to third-party servers

Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-11-25 21:08:54 +00:00
darode
1e1fda50aa
Add Destinia MCP Server (#3022)
Add Destinia MCP server to search for hotels
2025-11-25 21:07:28 +00:00
Wenqiang Wei
82f5ab1a10
Update README.md: Add MemOS API Service MCP to community servers (#3024) 2025-11-25 21:05:20 +00:00
Koichi ITO
902eed6fbf
fix(sequential-thinking): Fix a typo for nextThoughtNeeded (#3010)
This PR fixes the `nextThoughtNeeded` parameter that was missed in #3004.
2025-11-25 21:04:30 +00:00
Luigi Di Maggio
3ed4445b42
Add predictive maintenance MCP project to README (#3000)
## Description
Adds a new MCP server for industrial machinery diagnostics and predictive maintenance.

## Server Details
- **Name**: Predictive Maintenance MCP Server
- **Repository**: https://github.com/LGDiMaggio/predictive-maintenance-mcp
- **Category**: Industrial Automation / Data Science
- **Language**: Python
- **Features**: 
  - 25+ diagnostic tools (FFT, envelope analysis, ISO 20816 compliance)
  - ML-based anomaly detection (OneClassSVM, LocalOutlierFactor)
  - Interactive HTML reports with Plotly

## Checklist
- [x] Documentation is complete (README, examples, setup guides)
- [x] MIT License
- [x] Follows MCP protocol standards
- [x] Added to appropriate section in README
2025-11-25 21:04:05 +00:00
eeppodolak
d08027250b
Add MCP Elastic Email to Third Party Servers (#3025) 2025-11-25 21:03:04 +00:00
Lei Tang
f221ed0b3f
Add Fabi to Community Servers (#3026) 2025-11-25 21:01:56 +00:00
Cyril Navarro
1ab85fa0d7
Add PrestaShop MCP server information to README (#3030) 2025-11-25 20:56:37 +00:00
Nathan Brake
e3372c7af2
Add Notion MCP server fork to README (#3032)
As mentioned in https://github.com/makenotion/notion-mcp-server/issues/142 by @jamiecool, the official open-sourced Notion MCP server does not work well. It returns the raw JSON response from the Notion API, which is way to verbose. This fork of the Notion Server converts read responses to usable Markdown content which is more token efficient.
2025-11-25 20:55:44 +00:00
amar-awx
d00e2a0675
Add Airwallex Developer MCP to Official Integrations (#3035)
* feat: add Airwallex Developer MCP to Official integrations

* Update README.md

---------

Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-11-25 20:54:21 +00:00
Louis Fredice NJAKO MOLOM
e194ed4d26
feat: add uuv mcp to official server (#3036) 2025-11-25 20:53:15 +00:00
Srinivasan Sekar
8b7acb6e12
Add Appium MCP Server entry to README (#3039)
MCP server for Mobile Development and Automation | iOS, Android, Simulator, Emulator, and Real Devices
2025-11-25 20:50:13 +00:00
rexshi
cecaad4b03
Add PGYER MCP Server information to README (#3048) 2025-11-25 20:45:45 +00:00
Mikhail Lukianchenko
67033f559b
docs: add mcp-proxy (mikluko) to community servers (#3050) 2025-11-25 20:43:53 +00:00
Eyal
4914ac8d45
Update README.md - adding mcp resource (#3055)
docs: add Webrix enterprise MCP gateway
2025-11-25 20:42:19 +00:00
Alessio Pelliccione
fcb451ad62 docs: add CODEX CLI installation for sequential-thinking (#2956)
* docs: add CODEX CLI installation

* fix: command syntax in README for npx usage
2025-11-25 20:37:55 +00:00
Christoph Blecker
99813ce5c9
Update gitpython library for git mcp server (#2948)
* bump: gitpython dependency from 3.1.43 to 3.1.45

* test: use default branch name instead of hardcoding 'master'

* fix: handle d.diff as string in GitPython 3.1.45+
2025-11-25 20:35:33 +00:00
Jairam Patel
7fe5a635a1
Add Current Time UTC to Community MCP server list (#2873)
* Add Current Time UTC to Community MCP server list

* Update README.md

Co-authored-by: Ola Hungerford <olahungerford@gmail.com>

* dummy commit to re-trigger filesystem check

---------

Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
2025-11-25 20:30:18 +00:00
Net-assembly
a247ff6e13
Add Kash.click (#2945)
* Add Kash.click

Kash.click (business managment : sales, client and point of sale managment)

* Update README.md

---------

Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-11-25 20:29:14 +00:00
olaservo
92dbd9fd84 docs: simplify quickstart guide links
Address review feedback from @domdomegg to simplify the quickstart
links by removing the anchor to a specific step. Users should see
the full quickstart including verification, and simpler links are
more robust if docs reorganize.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 08:27:00 -07:00
olaservo
6bedb90a5d Rearrange notes 2025-11-24 20:48:59 -07:00
Ola Hungerford
85d8caae97
Merge branch 'main' into update-pr-template-deprecate-readme 2025-11-24 20:42:06 -07:00
Ola Hungerford
c60cfc76a7
Update README.md
Co-authored-by: Tadas Antanavicius <tadas@tadasant.com>
2025-11-24 20:39:51 -07:00
Ola Hungerford
ad7126c6e9
Update README.md
Co-authored-by: Cliff Hall <cliff@futurescale.com>
2025-11-24 20:39:40 -07:00
Valeriy Pavlovich
84c2824f03
# feat(filesystem): add ToolAnnotations hints to filesystem tools (#3045)
**Files touched**

- [src/filesystem/index.ts](../blob/HEAD/src/filesystem/index.ts) — add `annotations` metadata to each tool definition
- [src/filesystem/README.md](../blob/HEAD/src/filesystem/README.md) — document ToolAnnotations mapping for all filesystem tools

## Description

This change adds MCP `ToolAnnotations` (`readOnlyHint`, `idempotentHint`, `destructiveHint`) to all filesystem tools and documents the mapping in the filesystem README. MCP clients can now accurately distinguish read‑only vs. write tools, understand which operations are safe to retry, and highlight potentially destructive actions.

## Server Details

- **Server**: filesystem
- **Area**: tools (metadata returned via `listTools` / `ListToolsRequest`) and server docs

## Motivation and Context

Previously, the filesystem server did not expose ToolAnnotations, so many clients (e.g. ChatGPT Apps) conservatively treated filesystem tools as generic write operations. This led to:

- READ operations being surfaced with WRITE badges and confirmation prompts.
- No way for clients to know which write tools are idempotent or potentially destructive.

This PR aligns the implementation with `servers#2988` and updates the README to clearly document the semantics of each tool. Read‑only operations no longer need to be treated as writes, and destructive/idempotent behavior is explicit for UI and retry logic.

## How Has This Been Tested?

- `npm run build --workspace @modelcontextprotocol/server-filesystem`
- `npm test --workspaces --if-present`

## Breaking Changes

None.

## Types of changes

- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [x] Documentation update

## Checklist

- [x] I have read the [MCP Protocol Documentation](https://modelcontextprotocol.io)
- [x] My changes follows MCP security best practices
- [x] I have updated the server's README accordingly
- [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
- [x] I have added appropriate error handling
- [ ] I have documented all environment variables and configuration options

## Additional context

None.

Co-authored-by: Valeriy_Pavlovich <vp@strato.space>
2025-11-24 15:58:15 +00:00
olaservo
8da640d9e1 docs: add checklist item to confirm README updates in PR template 2025-11-23 12:04:19 -07:00
olaservo
107c9ac574 docs: remove checklist items for server publishing and README updates in PR template 2025-11-23 12:02:53 -07:00
olaservo
ff661562da docs: update documentation to deprecate README server listings and promote MCP Server Registry 2025-11-23 11:58:50 -07:00
olaservo
787def6fa3 docs: update PR template to deprecate README and promote MCP Registry
Updated pull request template to inform contributors that adding servers to
the README is deprecated. Contributors should now publish servers to the MCP
Server Registry instead, following the quickstart guide.

Changes:
- Added "Publishing Your Server" section with deprecation notice
- Updated checklist to include MCP Registry publishing
- Clarified README item refers to server's own documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 11:23:48 -07:00
Ola Hungerford
33e029f1d9
Merge pull request #3033 from modelcontextprotocol/adamj/simplify-output-schemas
fix(filesystem): simplify output schemas and fix structuredContent
2025-11-20 22:59:18 -07:00
Adam Jones
3f2ddb0479
fix: simplify output schemas for text-only tools and add structuredContent
For text-only tool responses, simplify outputSchemas from complex nested
arrays to simple { content: z.string() } format. All tool responses now
include structuredContent matching their outputSchema, fixing MCP protocol
violations when tools had output schemas but no structured content.

This applies to both filesystem and everything servers.
2025-11-20 21:44:36 +00:00
adam jones
55c3a31690
fix(filesystem): address review feedback from #3016 (#3031)
Address two items from Camila's review:

1. Use blob type for non-image/non-audio media files, restoring the
   original behavior. This matches the previous implementation which
   used blob as the fallback for unknown binary types. Use type
   assertion to satisfy the SDK's type constraints.

2. Reuse ReadTextFileArgsSchema.shape in the deprecated read_file tool
   instead of redefining the schema inline.
2025-11-20 20:29:22 +00:00
adam jones
b84637314f
fix(memory): convert to modern TypeScript SDK APIs (#3015)
* fix(memory): convert to modern TypeScript SDK APIs

Convert the memory server to use the modern McpServer API instead of
the low-level Server API.

Key changes:
- Replace Server with McpServer from @modelcontextprotocol/sdk/server/mcp.js
- Convert all 9 tools to use registerTool() instead of manual request handlers
- Create reusable Zod schemas for Entity and Relation types
- Use Zod schemas directly in inputSchema/outputSchema
- Add structuredContent to all tool responses
- Fix type literals to use 'as const' assertions

The modern API provides:
- Less boilerplate code (removed ~200 lines of schema definitions)
- Better type safety with Zod
- More declarative tool registration
- Cleaner, more maintainable code

* fix: exclude test files from TypeScript build

Add exclude for test files and vitest.config.ts to tsconfig
2025-11-20 19:09:44 +00:00
adam jones
88a2ac4360
fix(sequential-thinking): convert to modern TypeScript SDK APIs (#3014)
* fix(sequential-thinking): convert to modern TypeScript SDK APIs

Convert the sequential-thinking server to use the modern McpServer API
instead of the low-level Server API.

Key changes:
- Replace Server with McpServer from @modelcontextprotocol/sdk/server/mcp.js
- Use registerTool() method instead of manual request handlers
- Use Zod schemas directly in inputSchema/outputSchema
- Add structuredContent to tool responses
- Fix type literals to use 'as const' assertions

The modern API provides:
- Less boilerplate code
- Better type safety with Zod
- More declarative tool registration
- Cleaner, more maintainable code

* fix: exclude test files from TypeScript build

Add exclude for test files and vitest.config.ts to tsconfig

* refactor: remove redundant validation now handled by Zod

Zod schema already validates all required fields and types. Removed
validateThoughtData() method and kept only business logic validation
(adjusting totalThoughts if needed).

* fix(sequentialthinking): add Zod validation to processThought method

The modern API migration removed manual validation from processThought(),
but tests call this method directly, bypassing the Zod validation in the
tool registration layer. This commit adds Zod validation directly in the
processThought() method to ensure validation works both when called via
MCP and when called directly (e.g., in tests).

Also improves error message formatting to match the expected error
messages in the tests.

* refactor: simplify by removing redundant validation

Since processThought() is only called through the tool registration in
production, validation always happens via Zod schemas at that layer.
Removed redundant validation logic from processThought() and updated
tests to reflect this architectural decision.

Changes:
- Remove Zod validation from processThought() method
- Accept ThoughtData type instead of unknown
- Remove 10 validation tests that are now handled at tool registration
- Add comment explaining validation approach
2025-11-20 19:05:30 +00:00
adam jones
4dc24cf349
fix(filesystem): convert to modern TypeScript SDK APIs (#3016)
* fix(filesystem): convert to modern TypeScript SDK APIs

Convert the filesystem server to use the modern McpServer API instead
of the low-level Server API.

Key changes:
- Replace Server with McpServer from @modelcontextprotocol/sdk/server/mcp.js
- Convert all 13 tools to use registerTool() instead of manual request handlers
- Use Zod schemas directly in inputSchema/outputSchema
- Add structuredContent to all tool responses
- Fix type literals to use 'as const' assertions
- Update roots protocol handling to use server.server.* pattern
- Fix tsconfig to exclude vitest.config.ts

Tools converted:
- read_file (deprecated)
- read_text_file
- read_media_file
- read_multiple_files
- write_file
- edit_file
- create_directory
- list_directory
- list_directory_with_sizes
- directory_tree
- move_file
- search_files
- get_file_info
- list_allowed_directories

The modern API provides:
- Less boilerplate code
- Better type safety with Zod
- More declarative tool registration
- Cleaner, more maintainable code

* fix: use default import for minimatch

minimatch v10+ uses default export instead of named export

* fix(filesystem): use named import for minimatch

The minimatch module doesn't have a default export, so we need to use
the named import syntax instead.

Fixes TypeScript compilation error:
error TS2613: Module has no default export. Did you mean to use
'import { minimatch } from "minimatch"' instead?
2025-11-20 17:00:04 +00:00
adam jones
28a313206c
fix(ci): test failures should fail the build (#3019)
The 'Check if tests exist' step was actually running tests with
continue-on-error: true. If tests failed, it would set has-tests=false
and skip the actual test step, making CI appear green even with failing tests.

Simplified to use 'npm test --if-present' which:
- Runs tests if a test script exists (and fails if tests fail)
- Does nothing and exits 0 if no test script exists
- Removes the need for the complex check logic

Fixes the issue where PR #3014 had failing tests but CI was green.
2025-11-17 15:41:31 -06:00
adam jones
ec5357226a
Update Claude Code GitHub Action from beta to v1 (#3018)
Updates the Claude Code GitHub Action to use the stable v1 GA release instead of the beta version.

## Changes
- Updates action version from `@beta` to `@v1`
- Migrates `allowed_tools` to `claude_args: --allowedTools`
- Migrates `custom_instructions` to `claude_args: --system-prompt`
- Retains `additional_permissions` and `assignee_trigger` (both still supported in v1)

## Behavior
The action continues to work the same way:
- Triggers on `@claude` mentions in comments, reviews, and issues
- Triggers when assigned to an issue as "claude"
- Allows Claude to run Bash commands
- Allows Claude to read CI results on PRs
- Applies custom instructions for posting concise summaries
2025-11-17 15:41:22 -06:00
Mert Erbak
4d49d70988
Add MCP-Grok to Community Servers (#3020) 2025-11-17 21:37:15 +00:00
Koichi ITO
0d0d2f87bf
Merge pull request #3004 from jnick26/main
fix(sequential-thinking): Keep case of json params and description same
2025-11-16 02:24:43 +09:00
jnick26
e9b0340ad7
Merge pull request #1 from jnick26/jnick26-patch-1
fix(sequential-thinking): Keep case of json params and description same
2025-11-15 13:06:40 +02:00
jnick26
6dda92b77b
fix(sequential-thinking): Keep case of json params and description same
Models are confused about the case of the variables, which results into random validation errors. Keeping them the same helps to remove back and forth.
2025-11-15 12:58:40 +02:00
Koichi ITO
5a86e8cdfb
Merge pull request #2995 from emjin/patch-2
Update Semgrep link in README.md
2025-11-15 00:07:29 +09:00
Emma Jin
fdb75e1a87
Update Semgrep link in README.md 2025-11-13 15:24:02 -08:00
Koichi ITO
0f6a7eb621
Merge pull request #2982 from hassan254-prog/patch-1-1
fix: broken Nango logo link
2025-11-12 00:18:09 +09:00
Hassan_Wari
f94c7dbd3d
fix: nango broken logo link 2025-11-11 13:07:08 +03:00
Ola Hungerford
9bfdcdffcc
Merge pull request #2967 from lisaleegithub/lisaleegithub-add-stackoverflow-mcp
Add Stack Overflow MCP to the servers list
2025-11-10 21:20:51 -07:00
lisaleegithub
b2d7a8c7e6 update img src 2025-11-10 11:08:00 -08:00
Ola Hungerford
d3aaf514f8
Add new MCP servers to README.md (#2973) 2025-11-10 12:46:06 +00:00
Ola Hungerford
5501584c2b
Add 7 Official MCP Integrations (#2974)
* Add MCP servers to README.md

* Remove Wekan MCP server entry from README.md

* Add Infobip MCP server entry to README.md
2025-11-10 12:38:55 +00:00
Koichi ITO
6f07d5fac1
Merge pull request #2971 from UmakanthKaspa/fix-git-create-branch-docs
Fix git_create_branch parameter documentation
2025-11-09 17:18:18 +09:00
UmakanthKaspa
5556c3a0f4 Fix git_create_branch parameter documentation
Changed incorrect 'start_point' to correct 'base_branch' parameter.
The documented parameter didn't match the actual code implementation.
2025-11-09 17:16:53 +09:00
Ola Hungerford
db28e2a75b
Merge pull request #2934 from Astrit11/ca-behaviour-prediction
Added behaviour prediction mcp from chainaware ai
2025-11-08 21:10:45 -07:00
Ola Hungerford
65994ca3db
Merge pull request #2959 from UmakanthKaspa/add-git-status-test
Add test for git_status function
2025-11-08 08:37:35 -07:00
UmakanthKaspa
2c8bb9d8f7
Merge branch 'main' into add-git-status-test 2025-11-08 20:34:26 +05:30
Ola Hungerford
6205ff7838
Merge pull request #2862 from mhahn2003/add-amplitude-mcp-server
Add Amplitude MCP server to README
2025-11-07 20:05:58 -07:00
Ola Hungerford
d66bb65239
Merge pull request #2927 from janwilmake/patch-3
Add 'intallthismcp' Resource to readme
2025-11-07 20:05:04 -07:00
Ola Hungerford
22872bd63d
Merge pull request #2963 from batmat/complete-and-fix-cb
CloudBees MCP servers corrections
2025-11-07 20:04:26 -07:00
Ola Hungerford
69dee4277b
Merge pull request #2932 from Higangssh/fix/filesystem-docker-build
fix(filesystem): exclude test files from build (#2928)
2025-11-07 20:04:02 -07:00
Ola Hungerford
7e1bae6d5e
Merge pull request #2918 from thechandanbhagat/main
Added CV-Forge to the list
2025-11-07 20:02:50 -07:00
Ola Hungerford
18f420db63
Merge pull request #2922 from Pradumnasaraf/add-mcp-server
docs: Add Aviationstack MCP
2025-11-07 20:02:14 -07:00
lisaleegithub
58480bbf14 Add Stack Overflow MCP to the servers list 2025-11-07 10:07:49 -08:00
Baptiste Mathus
678747c7d7
Add CloudBees CI 2025-11-07 09:37:00 +01:00
Baptiste Mathus
bf75715a68
Update CloudBees Unify & fix links 2025-11-07 09:36:53 +01:00
Chandan Gupta Bhagat
f9915c4035
Merge branch 'main' into main 2025-11-06 23:07:06 +00:00
UmakanthKaspa
4225ab46e1 Add test for git_status function
Adds test coverage for the previously untested git_status function.
  The test verifies that the function returns valid git status output
  containing branch information.
2025-11-06 16:58:07 +00:00
Ola Hungerford
b686223489
Merge pull request #2868 from shenqingtech/main
Add DeepQ Financial Toolkit MCP Server to README
2025-11-04 21:34:11 -07:00
Chandan Gupta Bhagat
d17288af1b
Merge branch 'main' into main 2025-11-03 10:50:17 +00:00
astrit11
15e0b46520 Added behaviour prediction mcp from chainaware ai 2025-10-31 14:50:16 +01:00
Sanghee Son
bd39b09e4c fix: exclude test files from filesystem build
test files were being compiled into dist during build,
causing issues in docker environments. added exclude
pattern to tsconfig to skip __tests__ directory.

fixes #2928
2025-10-31 16:33:22 +09:00
Pradumna Saraf
393611484a
Add AutoML MCP server entry to README 2025-10-31 07:43:27 +05:30
Pradumna Saraf
3b3fbeea7e
Remove duplicate Audius entry from README
Removed duplicate entry for Audius MCP server in the README.
2025-10-31 07:41:05 +05:30
Michael Hahn
7c40b78fc9 Update with working Amplitude logo svg 2025-10-29 09:59:16 -07:00
Ola Hungerford
c7c549711b
Merge pull request #2921 from pauloaapereira/main
Added PostIdentity MCP to the list
2025-10-29 06:34:10 -07:00
Ola Hungerford
c74bcd8871
Merge branch 'main' into main 2025-10-29 06:32:19 -07:00
Ola Hungerford
b471b5e98d
Merge pull request #2924 from olaservo/update-tests-and-markdown-files
Add tests for memory server, fix filesystem tests, and move testing guidelines
2025-10-29 06:31:57 -07:00
Ola Hungerford
f592b6b1d2
Merge pull request #2881 from modelcontextprotocol/adamj/add-programmatic-mcp-prototype
Add Programmatic MCP Prototype to resources
2025-10-29 06:31:42 -07:00
Paulo Pereira
6fc141b7fe
Update README.md 2025-10-29 13:13:02 +00:00
Chandan Gupta Bhagat
78c1e36f04
updated as per copilot suggestion
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-29 11:15:35 +00:00
janwilmake
896cfa5375
Add new resource to README
This adds installthismcp.com to readme
2025-10-29 08:50:42 +01:00
olaservo
41984686b1 Merge branch 'update-tests-and-markdown-files' of https://github.com/olaservo/servers into update-tests-and-markdown-files 2025-10-28 21:28:42 -07:00
Ola Hungerford
75436edd26
Merge branch 'main' into update-tests-and-markdown-files 2025-10-28 21:27:57 -07:00
olaservo
c3b26fad30 Fix platform-dependent relative path test in filesystem
The test was expecting forward slashes to always be converted to backslashes, but normalizePath() only does this on Windows (process.platform === 'win32'). On Linux/Unix, forward slashes are preserved.

Improved the fix by:
1. Removing relative path assertion from the "as is" test since it doesn't match intent
2. Adding a dedicated test that validates platform-specific behavior naturally without mocking
3. Using the actual platform instead of unreliable Object.defineProperty mocking

This approach is more reliable and clearly documents expected behavior per platform.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 21:27:13 -07:00
Ola Hungerford
af87fb3af9
Merge pull request #2861 from adamjmurray/patch-2
Add Producer Pal to community servers list
2025-10-28 21:11:04 -07:00
olaservo
bbbc0c6381 Fix TypeScript error in filesystem tests by adding missing afterEach import
The afterEach function was used in the test file but not imported from vitest, causing a build failure. This was introduced in PR #2851.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 21:06:25 -07:00
olaservo
f6fff0374e Merge branch 'main' of https://github.com/modelcontextprotocol/servers into update-tests-and-markdown-files 2025-10-28 21:05:20 -07:00
olaservo
e68a555943 Add Vitest testing framework and implement tests for memory management features 2025-10-28 20:06:34 -07:00
Adam Murray
ee0688f74d
Fix typo
Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
2025-10-28 20:06:19 -07:00
Ola Hungerford
067f195e74
Merge pull request #2923 from gomakers-ai/add-mcp-n8n
Add mcp-n8n server
2025-10-28 19:37:36 -07:00
Leo
c13963f299 Remove logo image for community server entry 2025-10-28 21:23:20 -05:00
Ola Hungerford
3094fb53f7
Merge pull request #2919 from amekala/add-ads-mcp
Add Ads MCP to community servers list
2025-10-28 19:14:26 -07:00
Ola Hungerford
c4537f065a
Merge pull request #2917 from kseylerp/patch-3
Update Courier link in README.md
2025-10-28 19:12:33 -07:00
Ola Hungerford
26415981c5
Merge pull request #2916 from nobrainer-tech/add-langflow-mcp-server
Add Langflow MCP Server to community servers
2025-10-28 19:12:07 -07:00
Ola Hungerford
621d644674
Merge pull request #2911 from chrisgleissner/add-c64bridge-mcp-server
Add C64 Bridge to community servers
2025-10-28 19:11:34 -07:00
Ola Hungerford
a746a921a1
Merge pull request #2903 from thsmale/main
Add USA Spending MCP server
2025-10-28 19:09:27 -07:00
Ola Hungerford
26e24db509
Merge pull request #2891 from e1em3ntoDX/patch-2
Add DevExpress MCP Server to the README
2025-10-28 19:06:26 -07:00
Ola Hungerford
defc913f87
Merge pull request #2890 from fpankretic/add-new-server
Add Infobip server entry
2025-10-28 19:05:50 -07:00
Ola Hungerford
d2eb945c4d
Merge pull request #2851 from olaservo/fix-wsl-path-conversion
Resolve filesystem issue where WSL paths are incorrectly converted to Windows format
2025-10-28 18:56:58 -07:00
Ola Hungerford
52490b8c07
Merge pull request #2793 from InsightFactoryAPP/add-roundtable-mcp-server
Add Roundtable MCP Server to Community Servers
2025-10-28 18:54:56 -07:00
Ola Hungerford
7fc3d2debd
Merge pull request #2565 from modelcontextprotocol/claude/issue-65-20250817-1645
docs(fetch): Add Windows PYTHONIOENCODING configuration
2025-10-28 18:53:24 -07:00
Ola Hungerford
e98c180a53
Merge pull request #2811 from joshylchen/Zettelkasten-Space-official-integrations
Zettelkasten space official integrations
2025-10-28 18:50:59 -07:00
Leo
c8cf2ab567 Add mcp-n8n server to third-party servers list 2025-10-28 20:30:36 -05:00
Pradumna Saraf
a4577db4f1
docs: Add Aviationstack MCP 2025-10-28 21:22:03 +05:30
Paulo Pereira
62c59e598a Added PostIdentity MCP to the list 2025-10-28 13:21:46 +00:00
Adspirer
f94ccffb12 Add Ads MCP to community servers list
- Name: Ads MCP
- Remote server for cross-platform ad campaign creation
- Supports Google Ads (Search, Performance Max) and TikTok
- OAuth 2.1 authentication with PKCE
- Progress streaming (MCP 2025-03-26)
- Neutral description, alphabetically sorted
- MCP endpoint: https://mcp.adspirer.com/
- Docs: https://github.com/amekala/ads-mcp
2025-10-27 16:23:38 -07:00
Chandan Gupta Bhagat
40fb169a81
Clean up README by removing an empty line
Removed a redundant line from the README.
2025-10-27 22:58:19 +00:00
Chandan Gupta Bhagat
6ec3992e74
Moved CV Forge entry to community servers section
Moved CV Forge entry to community servers section
2025-10-27 22:56:55 +00:00
kysy
3b68b6dc18
Update Courier link in README.md
updated Courier link from github to official documentation
2025-10-27 15:54:13 -07:00
Chandan Gupta Bhagat
5a4e7c56c8
Added CV-Forge to the list 2025-10-27 22:49:47 +00:00
Arkadiusz Mastalerz
10bb88b4ab Add Langflow MCP Server to community servers
- Comprehensive MCP server with 90 tools for Langflow workflow automation
- Supports flow management, execution, builds, and knowledge bases
- Includes Docker support and full API coverage for Langflow 1.6.4
- Published on npm: langflow-mcp-server@2.1.0
2025-10-27 22:12:16 +01:00
Christian Gleissner
c32f42ec2d
Merge branch 'main' into add-c64bridge-mcp-server 2025-10-27 20:40:16 +00:00
Ola Hungerford
b22cd43e76
Add 25 Community MCP Servers (#2913) 2025-10-27 16:24:22 +00:00
Ola Hungerford
3aee2bdd43
Add 18 Official MCP Integrations (#2914) 2025-10-27 16:24:16 +00:00
olaservo
99c85da526 Remove redundant AGENTS.md and CLAUDE.md files
These files are no longer necessary as the testing guidelines
are now documented in CONTRIBUTING.md where both humans and
agents will naturally find them.

This addresses the PR #2884 reviewer feedback that agents
already read README and CONTRIBUTING files, making a separate
AGENTS.md redundant and creating unnecessary maintenance overhead.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 18:03:39 -07:00
olaservo
211ba87a3f Merge branch 'main' of https://github.com/modelcontextprotocol/servers into update-tests-and-markdown-files 2025-10-26 18:01:47 -07:00
olaservo
9aef0d37ac Add vitest testing guidelines to CONTRIBUTING.md
Addresses PR #2884 feedback to move testing guidelines from AGENTS.md
into CONTRIBUTING.md where both humans and agents will see it.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 18:01:30 -07:00
Ola Hungerford
51e06f188b
Merge pull request #2884 from olaservo/update-test-framework-to-vitest
Update test framework to vitest
2025-10-26 16:26:54 -07:00
Christian Gleissner
50cbc137d1 Add entry for C64 Bridge MCP Server to Community section 2025-10-26 20:33:00 +00:00
olaservo
89852960ac Merge branch 'main' of https://github.com/modelcontextprotocol/servers 2025-10-26 10:15:28 -07:00
thsmale
b4819c8dba add USA Spending MCP server 2025-10-24 13:09:32 -07:00
Filip Pankretić
e234df4333
Merge branch 'main' into add-new-server 2025-10-22 13:53:54 +02:00
Cliff Hall
07eaef78ed
Merge branch 'main' into update-test-framework-to-vitest 2025-10-21 17:31:33 -04:00
Cliff Hall
dc21983e3b
Merge pull request #2567 from modelcontextprotocol/claude/issue-2361-20250817-1626
fix: Change memory server default filename from memory.json to memory.jsonl
2025-10-20 17:41:31 -04:00
Dmitry Tokmachev
34c0882bb9
Update README with new service descriptions 2025-10-20 18:18:55 +04:00
Filip Pankretić
a9508aa115 Add Infobip server entry 2025-10-20 15:03:22 +02:00
Ola Hungerford
534e1cb217
Merge pull request #2843 from MiddlePoint-Solutions/add-mcp-on-android-tv-server
Add mcp-on-android-tv to Community Servers
2025-10-19 12:52:04 -07:00
Ola Hungerford
ed4b36b6d5
Merge branch 'main' into fix-wsl-path-conversion 2025-10-19 11:45:07 -07:00
olaservo
b666e7f246 Migrate sequentialthinking and filesystem servers from Jest to Vitest
- Replace Jest dependencies with Vitest and @vitest/coverage-v8
- Update test scripts to use 'vitest run --coverage'
- Create vitest.config.ts for both servers with node environment and coverage settings
- Update all test files:
  - Change imports from '@jest/globals' to 'vitest'
  - Replace jest.mock() with vi.mock()
  - Replace jest.fn() with vi.fn()
  - Update mock clearing/restoring to use vi methods
- Remove jest.config.cjs files
- All 151 tests passing (24 in sequentialthinking, 127 in filesystem)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-19 11:21:58 -07:00
olaservo
a30481da15 Merge upstream/main into main 2025-10-19 10:58:57 -07:00
Ola Hungerford
78af9ddffb
Merge branch 'main' into claude/issue-2361-20250817-1626 2025-10-19 07:45:22 -07:00
Ola Hungerford
3409f7837a
Merge pull request #2845 from kkruglik/add-mlflow-mcp
Add MLflow MCP server to community servers
2025-10-19 07:40:37 -07:00
Ola Hungerford
a317804199
Merge pull request #2850 from olaservo/add-sequentialthinking-tests-update-sdk
Add Sequential Thinking tests and update TypeScript SDK versions
2025-10-19 07:30:55 -07:00
olaservo
6ae9f1b658 Merge remote-tracking branch 'upstream/main' 2025-10-19 06:54:27 -07:00
Adam Jones
5c785bd7f0 Add Programmatic MCP Prototype to resources
Adds domdomegg/programmatic-mcp-prototype to the Resources section,
an experimental agent prototype demonstrating programmatic tool
composition, progressive discovery, state persistence, and skill building.
2025-10-19 12:24:26 +01:00
Juliano Vidal
5aedaabdf1
Adding PandaDoc MCP to the existing list (#2826)
* Adding PandaDoc MCP to the existing list

* Update README.md

Co-authored-by: adam jones <domdomegg+git@gmail.com>

---------

Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-10-17 12:49:50 +01:00
jstellon
51495d0683
Add IBM watsonx.data intelligence entry to README (#2865)
* Add IBM watsonx.data intelligence entry to README

* Update README.md

---------

Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-10-17 11:08:15 +01:00
Wolfe-James
20c9dc0701
Add claude-faf-mcp to MCP servers registry (#2759)
Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-10-17 11:07:19 +01:00
Arthur.Qin
061819130c add deepq mcp server to README.md 2025-10-17 11:28:45 +08:00
bhosmer-ant
0838dce7a0
Merge pull request #2863 from modelcontextprotocol/ochafik/port-pr17-elicitation
everything: add more types to startElicitation tool
2025-10-16 14:48:32 -04:00
Olivier Chafik
61fe1104ee
Port PR #17 elicitation improvements to everything server
This commit ports the comprehensive elicitation field type demonstration
from modelcontextprotocol/example-remote-server PR #17 to the everything
server, while maintaining the better UX of the existing implementation.

Changes:
- Expanded elicitation schema to demonstrate 9 field types:
  * string (plain and with default values)
  * boolean
  * email (format: "email")
  * uri (format: "uri")
  * date (format: "date")
  * integer (with min/max and default)
  * number (with min/max and default)
  * enum with enumNames for human-readable labels
- Added required fields support (name field is required)
- Added 10-minute timeout to elicitation request
- Improved response handling to dynamically show all provided fields
- Updated tool description to reflect comprehensive field type support
- Removed unused requestElicitation helper function (inlined implementation)
- Removed unused ElicitRequest import

The implementation follows PR #17's approach of directly using
extra.sendRequest() while preserving the user-friendly response handling
with emojis and formatted output from the original implementation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-16 19:13:33 +01:00
Michael Hahn
861b1c4cd5 Add Amplitude MCP server to README 2025-10-16 09:40:20 -07:00
Arul Kumaran
d85dc2a81b
Add NCP to README (#2781)
* Add NCP - Production-ready MCP orchestrator with 94.8% token reduction

NCP transforms MCP tool management from O(n) to O(1) complexity through intelligent on-demand discovery. Instead of loading all tool schemas upfront (11,000+ tokens), NCP provides unified interfaces that discover and execute capabilities as needed.

Key features:
- 94.8% token reduction (measured across 12,847+ conversations)
- 98.2% discovery accuracy with 47ms latency
- O(1) complexity scaling for unlimited tools
- Production validation with 99.97% uptime
- Academic research backing (arXiv publication)

Perfect for users with multiple MCPs who want faster, more efficient AI performance.

* Update NCP tagline and messaging

- Correct tagline: '1 MCP to rule them all'
- Emphasize cognitive overload reduction and environmental impact
- Focus on energy efficiency and carbon footprint reduction
- Remove 'production ready' language that suggests newcomer status

* Add NCP - The #1 MCP to Rule Them All

- Production-ready orchestrator with 94.8% token reduction
- Intelligent on-demand tool discovery with O(1) complexity
- Manages 50+ MCPs with 47ms discovery latency
- Enterprise features and comprehensive production validation
- 12,847 conversations tested across 2,797 tools

* Remove duplicate NCP entry and update description

Removed duplicate entry for NCP and updated its description.

* Update README.md

---------

Co-authored-by: Arul Kumaran <arul@portel.dev>
Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-10-16 16:50:15 +01:00
Asahi
e41c36cdde
Add DeFi Rates MCP server (#2836)
* Add DeFi Rates MCP server to third-party list

DeFi Rates is an MCP server providing real-time access to DeFi lending
rates across 13+ major protocols including Aave, Morpho, Compound, Venus,
Solend, Drift, and Jupiter.

Features:
- Query borrow/supply rates across multiple chains
- Compare rates between platforms
- Search for best lending opportunities
- Calculate looping strategy metrics

npm: @asahi001/defi-rates-mcp
Website: https://defiborrow.loan

* Move DeFi Rates to Community Servers section

As requested by maintainers, moved DeFi Rates from Official Integrations
to Community Servers section, maintaining alphabetical order.

* Update README.md

---------

Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-10-16 13:18:43 +01:00
Adam Murray
5cdf635da5
Add Producer Pal to community servers list 2025-10-15 23:54:33 -07:00
olaservo
c9b0135aa5 fix: preserve WSL paths and improve path normalization logic 2025-10-12 19:59:22 -07:00
olaservo
636b0872cb chore: add cors dependency to package.json 2025-10-12 18:22:08 -07:00
olaservo
f6fbfc4c5e Merge remote-tracking branch 'upstream/main' into add-sequentialthinking-tests-update-sdk 2025-10-12 18:09:41 -07:00
olaservo
f03a4eda56 Merge remote-tracking branch 'upstream/main' 2025-10-12 18:07:29 -07:00
Joseph Sagiv
fabbef2a1f
Merge branch 'main' into add-mcp-on-android-tv-server 2025-10-12 22:09:10 +02:00
shaun smith
f2dc09d15f
Merge pull request #2844 from cliffhall/fix/do-not-sample-on-subscribe
Do not initiate sampling on resource subscription.
2025-10-12 09:15:41 +01:00
kirillkruglikov
4e3b56f7ec Add MLflow MCP server to community servers 2025-10-11 21:40:53 +03:00
cliffhall
23b8279aaa Do not initiate sampling on resource subscription.
* In everything.ts
  - remove the automatic sampling call in the resource handler for SubscribeRequestSchema
2025-10-10 16:05:26 -04:00
Joseph Sagiv
9a3c85a311
Add mcp-on-android-tv to Community Servers 2025-10-10 19:40:39 +02:00
2pac
1d47d6bfb7
docs: desplega.ai qa-use community server (#2796)
* chore: desplega.ai qa-use MCP

* Update README.md

Co-authored-by: Ola Hungerford <olahungerford@gmail.com>

---------

Co-authored-by: adam jones <domdomegg+git@gmail.com>
Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
2025-10-10 12:45:37 +01:00
adam jones
a48d6b2072
Move pinmeto MCP back into official servers (#2840)
* Revert "Update README.md (#2834)"

This reverts commit 5df7307592.

* Fix alphabetical ordering of PinMeTo in official servers

Moved PinMeTo from C section to correct position in P section, between Pinecone Assistant and Pipedream.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-10 12:42:13 +01:00
Daniel Schwartz
b0aa869a41
doc: added readme for Kaltura MCP (#2839) 2025-10-10 12:42:01 +01:00
Lev Gelfenbuim
be59dbbba7
Add HTML to Markdown MCP server (#2837)
Adds html-to-markdown-mcp server that converts web pages to clean Markdown format.

Features:
- Fetches and converts HTML from URLs
- Converts raw HTML to Markdown
- Handles large pages with automatic file saving
- Bypasses token limits with saveToFile parameter
- Comprehensive test suite with 13 tests
- Available on npm: html-to-markdown-mcp

Co-authored-by: Lev Gelfenbuim <hi@lev.engineer>
2025-10-10 12:40:55 +01:00
Deepak Tiwari
bce8a59126
Update README.md (#2838) 2025-10-10 12:40:45 +01:00
Ale Bles
a76ad3f176
Add Improve Digital publisher MCP to list of Community servers (#2835) 2025-10-10 12:37:38 +01:00
Marcus Asker
5df7307592
Update README.md (#2834) 2025-10-10 12:34:48 +01:00
AdsMCP
272f7b587b
Add new TikTok Ads MCP server to the existing list (#2832)
Co-authored-by: tomatostranger <tomatostranger@adsmcp.com>
2025-10-10 12:33:14 +01:00
janwilmake
1ea00325f2
Add Parallel Task MCP (#2829)
* Update README.md

* Update README.md

---------

Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-10-10 12:32:28 +01:00
Peter Adam Korodi
f5da33def5
Add ConfigCat MCP server to official servers (#2827) 2025-10-10 12:30:31 +01:00
Franklin Moormann
4372d2a329
Add Console Automation MCP server (#2814)
* Add Console Automation MCP server

Production-ready MCP server for AI-driven console automation and monitoring.
Features 40 tools for session management, SSH, testing, monitoring, and background jobs.
Like Playwright for terminal applications.

- Added to Third-Party Servers section (alphabetically positioned)
- GitHub: https://github.com/ooples/mcp-console-automation

* Remove duplicate Console Automation entry from README

Removed duplicate entry for Console Automation in the README.

---------

Co-authored-by: franklinic <franklin@ivorycloud.com>
2025-10-10 12:27:27 +01:00
Olivier Chafik
6e83843716
Merge pull request #2830 from modelcontextprotocol/ochafik/zip-tool
add zip tool to everything server
2025-10-08 18:52:45 +01:00
Olivier Chafik
d6e218d0f8
Update everything.ts 2025-10-08 17:53:52 +01:00
Olivier Chafik
232258426e
add zip tool to everything server (demonstrates consuming and producing URIs, incl. data URIs) 2025-10-08 17:44:24 +01:00
Ola Hungerford
37e6366fe9
Merge pull request #2760 from 0sa0sa/add-chrome-devtools-mcp
chore: add Chrome DevTools MCP to Official Integrations
2025-10-08 08:35:23 -07:00
olaservo
0b5f7e17ec Merge branch 'main' of https://github.com/olaservo/servers 2025-10-07 23:06:25 -07:00
olaservo
072e53322b Add tests for sequential thinking and update typescript sdk versions 2025-10-07 23:01:42 -07:00
Ola Hungerford
05b082297c
Merge pull request #2825 from oguzc/add-playwright-wizard
Add Playwright Wizard MCP server
2025-10-07 19:59:54 -07:00
Ola Hungerford
591bb98269
Merge pull request #2823 from aiyakitori/main
Add Kiln to integration list
2025-10-07 19:56:34 -07:00
Ola Hungerford
a1cb0a873e
Merge pull request #2822 from jacopotagliabue/patch-2
Add Bauplan to MCP list
2025-10-07 19:56:01 -07:00
Ola Hungerford
07195bebd1
Merge pull request #2821 from smultani/mixpanel-mcp-listing
Mixpanel MCP server info
2025-10-07 19:55:04 -07:00
Ola Hungerford
d0ed46ba01
Merge pull request #2813 from luchobit/add-bitnovo-pay-server
Add Bitnovo Pay MCP server to third-party integrations
2025-10-07 19:48:33 -07:00
Ola Hungerford
4747ac4c0e
Merge pull request #2803 from DavidCabal/main
Add Kalendis to README
2025-10-07 19:39:23 -07:00
Ola Hungerford
80d473e7fb
Merge pull request #2801 from IvanMurzak/main
Added Unity-MCP to the Community Servers section
2025-10-07 19:37:21 -07:00
Ola Hungerford
2d718774e6
Merge pull request #2790 from humanjesse/main
Add TextArtTools MCP server
2025-10-07 19:35:59 -07:00
Oguz Ceylan
eabbce3c6b Add Playwright Wizard MCP server to community servers 2025-10-08 02:19:15 +02:00
David Cabal
bfeadf65c2
Merge branch 'main' into main 2025-10-07 13:59:41 -05:00
Ola Hungerford
7505699bf4
Merge pull request #2799 from match-gabeflores/patch-2
add official sql server
2025-10-07 08:00:57 -07:00
Ola Hungerford
d4fa597273
Merge pull request #2798 from recepyavuz0/main
Added SendGrid MCP link to the README
2025-10-07 07:59:10 -07:00
Ola Hungerford
ebe5d47657
Merge pull request #2797 from askermarcus/main
Add PinMeTo MCP server entry to README
2025-10-07 07:56:43 -07:00
Ola Hungerford
ea432039df
Merge pull request #2791 from scotttwittrockcio/add-customerio-mcp-server
Add Customer.io integration to README
2025-10-07 07:56:02 -07:00
Ola Hungerford
1b54904b43
Merge pull request #2788 from pkolawa/add-krs-poland-mcp-server
Adding KRS Poland MCP Server
2025-10-07 07:51:38 -07:00
Ola Hungerford
e40fbb49c3
Merge pull request #2766 from nargit21/main
docs: add CoinStats MCP server to official integrations in README
2025-10-07 07:49:34 -07:00
Ola Hungerford
adf627e5ad
Merge pull request #2765 from pviti/main
Add Commerce Layer to official integrations list
2025-10-07 07:48:50 -07:00
Ola Hungerford
86899987a0
Merge pull request #2764 from cameronrye/add-activitypub-mcp-server
Add ActivityPub MCP server to community servers list
2025-10-07 07:47:52 -07:00
Ola Hungerford
4c450a140f
Merge pull request #2763 from rhukster/patch-2
Add YetiBrowser MCP to Community registry
2025-10-07 07:47:03 -07:00
0sa0sa
42433949ec Update Chrome DevTools logo to official Chrome favicon
Changed logo URL to official Chrome favicon and updated alt text to "Chrome".

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 23:23:31 +09:00
Ola Hungerford
141c9371da
Merge pull request #2761 from inercia/patch-2
Add MCPShell tool to README.md
2025-10-07 07:12:48 -07:00
Recep Yavuz
6035fff6ea
Merge branch 'main' into main 2025-10-07 14:00:13 +03:00
0sa0sa
e6516f38e0 Move Chrome DevTools MCP to Official Integrations
Moved Chrome DevTools MCP from Third-Party Servers section to Official Integrations section, positioned alphabetically between Chroma and Chronulus AI.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 15:47:51 +09:00
Ola Hungerford
48d9c5531e
Merge pull request #2758 from 2slides/main
Add official 2slides MCP Server
2025-10-06 23:33:22 -07:00
Ola Hungerford
264f822b57
Merge pull request #2754 from plainly-videos/add-plainly-videos-mcp-server
Add the official Plainly Videos MCP
2025-10-06 23:30:46 -07:00
Cameron Rye
20a67f74cb
Merge branch 'main' into add-activitypub-mcp-server 2025-10-06 22:49:48 -04:00
Jacopo Tagliabue
fa9a65869c
Add Bauplan to MCP list 2025-10-06 15:52:20 -04:00
aiyakitori
a7f8c1d549 Add Kiln to integration list 2025-10-06 12:42:04 -07:00
Sharan Multani
8cbe4394f8 Changing icon
Changing icon
2025-10-06 11:56:38 -04:00
Sharan Multani
88069cce01 Mixpanel MCP server info
Adding Mixpanel MCP server info
2025-10-06 11:46:57 -04:00
joshylchen
b450b0c9f5
Merge branch 'main' into Zettelkasten-Space-official-integrations 2025-10-06 11:21:48 +08:00
Ivan Murzak
d05a887acc
Merge branch 'main' into main 2025-10-05 03:06:38 -07:00
Ola Hungerford
117c1c4536
Merge pull request #2756 from zihaolin96/zihao/add_strata_mcp_server
Add Strata MCP Server to readme
2025-10-05 01:04:55 -07:00
Ola Hungerford
86945a38d0
Merge pull request #2697 from Dumbris/add-mcpproxy-server
Add MCPProxy server to Resources
2025-10-05 01:01:25 -07:00
Ola Hungerford
839df08be2
Merge pull request #2667 from kenm47/patch-2
Add the Maybe Don't AI Policy Engine to the list of MCP Servers
2025-10-05 00:54:13 -07:00
Recep Yavuz
00006c3fb8
Merge branch 'main' into main 2025-10-04 15:26:03 +03:00
Olivier Chafik
4604e7564b
Merge pull request #2789 from modelcontextprotocol/fix/sample-elicit
fix sampling and elicitation calls for streamable http
2025-10-03 13:51:37 +01:00
Luciano Benzadon
c8279bfa21 Add Bitnovo Pay MCP server to third-party integrations
Added Bitnovo Pay MCP server to the official integrations list.

Bitnovo Pay is a cryptocurrency payment integration that enables AI agents to:
- Create cryptocurrency payments (Bitcoin, Ethereum, USDC, etc.)
- Generate and manage payment QR codes
- Process transactions through the Bitnovo Pay API
- Query payment status and webhook events
- Access cryptocurrency catalog with filtering

Repository: https://github.com/bitnovo/mcp-bitnovo-pay
NPM Package: @bitnovopay/mcp-bitnovo-pay
2025-10-03 13:03:08 +02:00
Tigran Manukyan
03343f736f
Merge branch 'main' into main 2025-10-03 13:25:12 +04:00
joshylchen
eff6fde5d6 add Zettelkasten Space to official integration 2025-10-03 11:27:55 +08:00
joshylchen
ef0f07ba99
Merge branch 'modelcontextprotocol:main' into main 2025-10-03 11:20:28 +08:00
David Cabal
7479cd9b7d
add kalendis-mcp to README 2025-10-01 16:11:38 -05:00
Ivan Murzak
41cb907d3f
Merge pull request #1 from IvanMurzak/IvanMurzak-patch-1
Add Unity MCP project to README
2025-09-30 22:03:58 -07:00
Ivan Murzak
a10950f7a3
Add Unity MCP project to README 2025-09-30 21:43:05 -07:00
Gabe Flores
8ccff10d54
Update README.md 2025-09-30 15:12:36 -05:00
Gabe Flores
7cc09c1554
Update README.md 2025-09-30 15:10:23 -05:00
Gabe Flores
de3a87123e
add official sql server 2025-09-30 15:07:32 -05:00
Recep Yavuz
8b648c351b Added SendGrid MCP link to the README 2025-09-30 21:26:06 +03:00
Marcus Asker
04a1a23d8c
Add PinMeTo MCP server entry to README 2025-09-30 14:37:37 +02:00
Pierluigi Viti
34368f0803
Merge branch 'main' into main 2025-09-30 11:20:25 +02:00
Mahdiyar
e8a503611c Add Roundtable MCP server to community servers list
- Added Roundtable to alphabetical listing between Root Signals and Routine
- Roundtable is a unified integration layer that bridges multiple AI coding assistants
- Supports Codex, Claude Code, Cursor, Gemini through zero-configuration auto-discovery
- Features enterprise-ready architecture with FastMCP implementation and 26+ IDE integrations
2025-09-30 02:46:36 -04:00
Scott Wittrock
388674a5a5 Update Customer.io link in README to point to the documentation for AI integration 2025-09-29 12:14:44 -04:00
Scott Wittrock
2ed965b0d9 Add Customer.io integration to README 2025-09-29 12:10:15 -04:00
human jesse
9eeddb8e5b
Merge branch 'main' into main 2025-09-29 09:57:02 -04:00
Abraham J. Olaobaju
28dcd95b3b
Add Flutterwave API integration to README (#2748)
* Add Flutterwave API integration to README

* Update README.md

---------

Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-09-29 13:06:28 +01:00
Javier Re
be3fdee735
Add Lippia MCP Server entry to README (#2698)
* Add Lippia MCP Server entry to README

* Update README.md

Change link to repo for getting started

Co-authored-by: Ola Hungerford <olahungerford@gmail.com>

---------

Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
2025-09-29 13:05:17 +01:00
Jason Summer
dad51a26ed
Add Snowflake-Labs mcp server (#2724)
* Add Snowflake-Labs MCP server to community server

* Shorten description
2025-09-29 13:02:39 +01:00
mikeschecht
2550353d83
Added AX-Platform to the list of Community Servers. (#2723)
* Added AX-Platform to the list of Community Servers.

[AX-Platform](https://github.com/AX-MCP/PaxAI)** - AI Agent
collaboration platform. Collaborate on tasks, share context, and
coordinate workflows.

* Update README.md

---------

Co-authored-by: michaelschecht <michaelschecht@outlook.com>
Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-09-29 13:02:17 +01:00
Jesse Chapman
fa0797da3a fix: Update TextArtTools to be one word 2025-09-29 00:21:20 -04:00
Jesse Chapman
9f31aa92b6 feat: Add TextArt Tools MCP server
Add TextArt Tools server to third-party servers list.
Provides Unicode text styling and ASCII art generation
with 23 styles and 322+ figlet fonts.
2025-09-29 00:11:00 -04:00
evalstate
a753cd6f3a fix sampling and elicitation calls for streamable http 2025-09-28 17:40:11 +01:00
Piotr Kolawa
2279192a58 Adding KRS Poland MCP Server 2025-09-28 14:18:53 +02:00
Dumbris
f1c68b63b6
Merge branch 'main' into add-mcpproxy-server 2025-09-28 13:02:43 +03:00
Daniel Elero
c8f8779f77 Add the official Plainly Videos mcp 2025-09-25 16:22:29 +02:00
Tigran Manukyan
ef645fb8fd docs: add CoinStats MCP server to official integrations in README 2025-09-25 15:43:23 +04:00
Pierluigi Viti
715bc1ddfe
Merge branch 'main' into main 2025-09-25 10:22:49 +02:00
Pierluigi Viti
5e141837ce feat: add commerce layer mcp local server 2025-09-25 10:20:08 +02:00
2slides.com
b5f854153c
Merge branch 'main' into main 2025-09-25 09:54:32 +08:00
Cameron Rye
0912cd8100 fix: move ActivityPub MCP server to Community Servers section
Move ActivityPub MCP server from Official Integrations to the correct
Community Servers section, maintaining alphabetical order between
'Actor Critic Thinking' and 'Adobe Commerce'.
2025-09-24 16:40:13 -04:00
Cameron Rye
e040fe996e docs: add ActivityPub MCP server to community servers list
Add ActivityPub MCP server by cameronrye to the community servers section.
This comprehensive MCP server enables LLMs to explore and interact with
the Fediverse through ActivityPub protocol, supporting actor discovery,
timeline fetching, instance exploration, and WebFinger resolution across
decentralized social networks.
2025-09-24 16:34:36 -04:00
Andy Miller
d9f5e68fae
Add YetiBrowser MCP to project list in README 2025-09-24 12:14:40 -06:00
Alvaro
f990d51aac
Add MCPShell tool to README.md 2025-09-24 17:47:00 +02:00
Ola Hungerford
850b1542e2
Merge pull request #2747 from vidoluco/update-resourcesmcps
Add GitLab, Jenkins, Teams, WhatsApp Business to Official Integrations
2025-09-24 07:37:58 -07:00
0sa0sa
79e31ab883 add Chrome DevTools MCP 2025-09-24 23:31:35 +09:00
Cliff Hall
582bc1d58f
Merge pull request #2757 from 0dd/security/git-server-optimization
Fix: Git Server Path Restriction
2025-09-24 10:07:03 -04:00
Cliff Hall
c519dbbc02
Merge branch 'main' into security/git-server-optimization 2025-09-24 10:02:28 -04:00
Aonan Guan
6382f7846d docs: update README to reflect removed initialization functionality 2025-09-23 21:31:26 -07:00
2slides.com
bbd729a972
Add official 2slides MCP Server 2025-09-24 12:14:23 +08:00
Aonan Guan
eac56e7bcd refactor: remove redundant initialization functionality 2025-09-23 20:59:54 -07:00
Zihao Lin
befbacdb79 add Strata MCP Server to readme 2025-09-23 13:20:54 -07:00
Dumbris
c0b343938d
Merge branch 'main' into add-mcpproxy-server 2025-09-23 19:40:30 +03:00
Misha Kolesnik
402f0ed43e
fix: resolve brace-expansion ReDoS vulnerability (CVE-2025-5889) (#2752)
Updates brace-expansion from 2.0.1 to 2.0.2 to fix a Regular Expression
Denial of Service vulnerability.

Fixes #2700
2025-09-23 12:35:17 +01:00
Matyas Heins
1689da8f1a
docs: add Steuerboard MCP server to community servers (#2749)
Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
2025-09-23 12:34:47 +01:00
vidoluco
d93e325469 Fix Microsoft logo URLs 2025-09-23 12:00:42 +03:00
Dumbris
2671b53d4e
Merge branch 'main' into add-mcpproxy-server 2025-09-23 08:38:17 +03:00
Algis Dumbris
2769fae31d Move MCPProxy from servers to Resources section
Address review feedback by moving MCPProxy to the Resources section as it's more of an application for managing MCP servers rather than a specific MCP server implementation. Maintained alphabetical order in the Resources section.
2025-09-23 08:34:32 +03:00
Ola Hungerford
fc5556e933
Merge pull request #2733 from rucindrea/add-alttester-mcp
Add AltTester MCP to the list
2025-09-22 21:32:59 -07:00
Ru
387baed0ba
Update README.md to implement changes from code review 2025-09-23 07:27:28 +03:00
Ola Hungerford
c4eae30182
Merge pull request #2751 from iiAtlas/main
Added hledger-mcp to the Community Servers
2025-09-22 21:23:26 -07:00
Ola Hungerford
d2e15df0ea
Merge pull request #2750 from garethx/main
Update: Bucket rebranded to Reflag
2025-09-22 21:21:01 -07:00
Ola Hungerford
a6aacef4b4
Merge pull request #2746 from vishnurudra-ai/main
Add KYC-mcp-server to community servers list
2025-09-22 21:14:08 -07:00
Ola Hungerford
8320b1a928
Merge pull request #2745 from mbailey/patch-1
Fix link and name for VoiceMode project
2025-09-22 21:13:31 -07:00
Ola Hungerford
b308ffb88c
Merge pull request #2743 from tjhop/feat/add-prometheus-mcp-go
feat: add prometheus golang MCP implementation
2025-09-22 21:12:19 -07:00
Ola Hungerford
c940116ad9
Merge pull request #2742 from mhmzdev/flutter-figma-mcp
docs: Added Figma to Flutter MCP community server
2025-09-22 21:11:39 -07:00
Ola Hungerford
df78abce6a
Merge pull request #2741 from jackyang25/add-geolocation-mcp-server
Add Geolocation MCP server to community servers list
2025-09-22 21:11:13 -07:00
Ola Hungerford
0006cbf1a1
Merge pull request #2740 from call518/dev
Add New MCP-Server - MCP-OpenStack-Ops (https://github.com/call518/MC…
2025-09-22 21:10:49 -07:00
adam jones
28427d8cd1
Fix time server to default to UTC when tzinfo is unavailable (#2738)
When get_localzone_name() returns None, the server now defaults to UTC
instead of raising an error. This makes the server more robust in
environments where the local timezone cannot be determined.
2025-09-22 21:09:58 -07:00
Ola Hungerford
2cd2c0f3b8
Merge pull request #2737 from atototo/main
Add API Lab MCP to Community Servers
2025-09-22 21:09:05 -07:00
Ola Hungerford
f99ecde8a7
Merge pull request #2728 from jasonkylelol/jenkins-mcp-server
feat: add jenkins-mcp-server
2025-09-22 21:06:59 -07:00
Ola Hungerford
dfb84d6e3b
Merge pull request #2727 from shilman/patch-2
Add Storybook MCP to list of community servers
2025-09-22 21:06:17 -07:00
Ola Hungerford
bc0fe96d42
Merge pull request #2721 from cameronrye/add-openzim-mcp-server
Add OpenZIM MCP server to community servers
2025-09-22 21:04:03 -07:00
Ola Hungerford
acc36bcd38
Merge pull request #2715 from stefanoamorelli/add-storybook-mcp-server
feat(readme): add Storybook MCP server to community servers list
2025-09-22 21:03:03 -07:00
Ola Hungerford
991dab58f3
Merge pull request #2707 from shinpr/add-mcp-image-server
Add Intelligent Image Generator to Community Servers
2025-09-22 21:01:21 -07:00
Ola Hungerford
5b02c0020f
Merge pull request #2695 from yoshihirow/chore-add-docbase-to-readme
Add DocBase MCP Server To README.md
2025-09-22 20:57:14 -07:00
Ola Hungerford
dfc88e3969
Merge pull request #2694 from grippstick/patch-2
Add Backdocket MCP server information to README
2025-09-22 20:55:40 -07:00
Ola Hungerford
21be3fc782
Merge pull request #2684 from tanveer-farooq/tanveer-farooq-patch-1
Rename HyperExecute MCP Server to LambdaTest MCP Server and reorder entry
2025-09-22 20:54:01 -07:00
Ola Hungerford
d87894c368
Merge pull request #2675 from kirk-marple/main
Add Zine MCP server to the list of official integrations in README.md
2025-09-22 20:53:08 -07:00
Atlas Wegman
5cfb29483b Added hledger-mcp to README.md 2025-09-22 18:16:59 -04:00
Mike Bailey
bf5ed1b94a
Update README.md
Co-authored-by: Koichi ITO <koic.ito@gmail.com>
2025-09-23 06:08:44 +10:00
garethx
829e21be43
Update: Bucket rebranded to Reflag 2025-09-22 16:07:46 +01:00
l.cesaro
7ca8cef06a update addition of MCPs servers of popular frameworks 2025-09-22 13:27:57 +03:00
vishnurudra-ai
f57e552d3b
Update README.md
Add KYC-mcp-server details. https://github.com/vishnurudra-ai/KYC-mcp-server
2025-09-21 21:57:11 -04:00
Mike Bailey
5e2d84f196
Fix link and name for VoiceMode project
"Sorry for the confusion"

My AI assistant Cora has had her GitHub access restricted but ultimately it's my fault for not reviewing her change properly.

We're both learning.
2025-09-21 23:00:26 +10:00
TJ Hoplock
1d1e5cb89d feat: add prometheus golang MCP implementation
Signed-off-by: TJ Hoplock <t.hoplock@gmail.com>
2025-09-20 17:00:38 -04:00
Muhammad Hamza
fc14460a4b docs: Added Figma to Flutter MCP community server 2025-09-20 15:17:43 +05:00
Jack Yang
f3160eab77 Add Geolocation MCP server to community servers list
- Added geolocation-mcp-server entry between freqtrade-mcp and GDB
- Provides WalkScore API integration for walkability, transit, and bike scores
- Repository: https://github.com/jackyang25/geolocation-mcp-server
2025-09-20 03:40:39 -04:00
JungJungIn
5f6a3bdcb8 Add New MCP-Server - MCP-OpenStack-Ops (https://github.com/call518/MCP-OpenStack-Ops) 2025-09-20 15:42:50 +09:00
Dumbris
f5bd91db11
Merge branch 'main' into add-mcpproxy-server 2025-09-19 11:37:29 +03:00
tanveer-farooq
b85a272a6d
Merge branch 'main' into tanveer-farooq-patch-1 2025-09-19 12:33:57 +05:30
Young
2e77f702bc Add API Lab MCP to Community Servers
Adding API Lab MCP - an AI-powered API testing laboratory for Claude Desktop and Claude Code that enables natural language API testing with authentication support, response validation, and performance metrics.
2025-09-19 13:06:39 +09:00
Cameron Rye
19534fa89b
docs: add Gopher MCP server to community servers (#2736)
Add Gopher MCP server to the community servers list. Gopher MCP is a
modern, cross-platform MCP server that enables AI assistants to browse
and interact with both Gopher protocol and Gemini protocol resources
safely and efficiently, bridging vintage and modern alternative internet
protocols with AI assistants.
2025-09-19 02:54:17 +01:00
joshylchen
4c9ff4e983
Add zettelkasten to README.md (#2718)
* Update README.md


## Add Zettelkasten MCP Server

This PR adds the Zettelkasten to the community servers list.

### Project Overview
Comprehensive AI-powered knowledge management system that implements the proven Zettelkasten (slip-box) method with modern AI assistance.

### Key Features
- **Atomic Note Management**: Create, organize, and connect atomic ideas
- **AI-Powered Workflows**: CEQRC process for enhanced learning
- **Full-Text Search**: SQLite FTS5 with advanced query syntax
- **Intelligent Linking**: AI-suggested connections between notes
- **Multiple Interfaces**: CLI, REST API, Streamlit UI, and MCP server
- **Comprehensive Documentation**: Setup guides and examples included

### MCP Server Details
- **Transport**: STDIO
- **Tools**: 7 comprehensive tools for note management and AI workflows
- **Dependencies**: OpenAI API (optional, has stub mode)
- **Python**: 3.11+ with modern async/await patterns
- **Setup**: Automated setup script with Claude Desktop config generation

### Repository Information
- **URL**: https://github.com/joshylchen/zettelkasten
- **License**: MIT
- **Documentation**: Complete setup guide in `docs/MCP_SETUP.md`
- **Tests**: Comprehensive test coverage included

This server demonstrates sophisticated MCP patterns and provides real value for knowledge workers and researchers using AI assistants.

* update Zettelkasten under community project
2025-09-19 02:53:01 +01:00
Cliff Hall
f8c05004d0
Open CORS for any origin to allow direct browser connection (#2725)
* * In src/everything/sse.ts
  - import cors
  - use cors with config allowing any origin + GET/POST
* In src/everything/streamableHttp.ts
  - import cors
    - use cors with config allowing any origin + GET/POST/DELETE, and exposed protocol headers for client to read
* In package.json and package-lock.json
  - add cors as a dependency

* * In package.json and package-lock.json
  - add @types/cors as dev dependency

* Add caution note for CORS origin wildcard usage

Added caution note for using '*' in CORS origin.

* * In streamableHttp.ts
  - remove remove unintentional console log

* * In streamableHttp.ts
  - add comment about why opening cors for all routes

* * In sse.ts
  - add comment about using * with caution in production for cors

* * In sse.ts
  - indent on cors config

---------

Co-authored-by: shaun smith <1936278+evalstate@users.noreply.github.com>
2025-09-19 01:28:41 +01:00
Cliff Hall
9280e8fa74
Remove comments that break release.yml (#2735)
- remove comments that break CI.
  - github does not support comments, even though they are valid yaml
2025-09-19 01:27:09 +01:00
Josh Chen
966ceea4fe update Zettelkasten under community project 2025-09-19 07:18:07 +08:00
joshylchen
cd5045b66f
Merge branch 'main' into main 2025-09-19 07:08:58 +08:00
Cliff Hall
e6bc263a41
Merge pull request #2730 from cliffhall/ensure-create-release-is-run-on-any-publish
Fix insufficient create-release condition in GitHub Action
2025-09-18 17:29:13 -04:00
cliffhall
888184493c * In .github/workflows/release.yml
- in create-release job condition
    - add comments about use of always
2025-09-18 15:58:01 -04:00
cliffhall
20430df0de * In .github/workflows/release.yml
- in create-release job condition
    - simplify condition
2025-09-18 15:39:00 -04:00
mademan12
f4a25408cf
Add Microsoft Playwright MCP server to README (#2678) 2025-09-18 15:57:21 +01:00
Robin Guldener
8509cc7f86
Add Nango MCP Server (#2719)
Add Nango MCP server to the list in the Readme
2025-09-18 15:56:27 +01:00
Aonan Guan
52ab84cd63
Improve memory server schema validation (#2726)
- Add explicit property filtering in saveGraph method
- Add additionalProperties constraints to input schemas
2025-09-18 15:11:12 +01:00
Cobi
1bd3734e72
Add DevCycle to README (#2731)
Co-authored-by: Adam Jones <adamj@anthropic.com>
2025-09-18 15:10:12 +01:00
Tomasz Nurkiewicz
a1571de840
Monday.com official MCP (#2734)
* Monday.com official MCP

* Move Monday.com official MCP to official integrations section

As suggested in the review comments, moved the official Monday.com MCP
server from the community section to the official integrations section
where it belongs, maintaining alphabetical order.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Adam Jones <adamj@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-18 14:53:54 +01:00
tanveer-farooq
3cb87f5132
Update README.md
Applied suggested change from review

Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
2025-09-18 14:03:39 +05:30
Ru
674623e310
Add AltTester MCP to the list 2025-09-18 07:43:52 +03:00
cliffhall
e545918618 * In .github/workflows/release.yml
- in create-release job condition
    - check for all combinations of publish results that should lead to a release creation
      - npm = success / pypi = skipped
      - npm = skipped / pypi = success
      - npm = success / pypi = success
2025-09-17 13:31:29 -04:00
cliffhall
7061c367c5 * In .github/workflows/release.yml
- in create-release job condition
    - check for all combinations of publish results that should lead to a release creation
      - npm = success / pypi = skipped
      - npm = skipped / pypi = success
      - npm = success / pypi = success
2025-09-17 13:27:44 -04:00
cliffhall
9a65da3e78 * In .github/workflows/release.yml
- in create-release job condition
    - check for all combinations of publish results that should lead to a release creation
      - npm = success / pypi = skipped
      - npm = skipped / pypi = success
      - npm = success / pypi = success
2025-09-17 11:44:40 -04:00
luming.jiao
632604e6e7 feat: add jenkins-mcp-server 2025-09-17 19:17:06 +08:00
Michael Shilman
81b71bcb5b
Add Storybook entry to README 2025-09-16 22:32:02 -07:00
massan
76ec83f78d Add DocBase MCP Server to README.md 2025-09-16 13:18:08 +09:00
Cameron Rye
491edc46f5 docs: add OpenZIM MCP server to community servers
Add OpenZIM MCP server to the community servers list. OpenZIM MCP is a
modern, secure, and high-performance MCP server that enables AI models
to access and search ZIM format knowledge bases offline, supporting
Wikipedia and other educational content archives.
2025-09-15 19:35:00 -04:00
Phenomenon
f1f6f3473d
Add Hive Intelligence MCP (#2646)
Co-authored-by: Utsav Agarwal <uagarwal744@gmail.com>
Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-09-15 18:57:36 +01:00
Joshua Grippo
fbaaf27860
Revise Backdocket entry in README
Updated Backdocket entry with new URL and removed redundant text. We now have the links to the backdocket website, the backdocket mcp server, and the backdocket mcp about page.
2025-09-15 09:40:05 -05:00
joshylchen
db88ac3ae9
Update README.md
## Add Zettelkasten MCP Server

This PR adds the Zettelkasten to the community servers list.

### Project Overview
Comprehensive AI-powered knowledge management system that implements the proven Zettelkasten (slip-box) method with modern AI assistance.

### Key Features
- **Atomic Note Management**: Create, organize, and connect atomic ideas
- **AI-Powered Workflows**: CEQRC process for enhanced learning
- **Full-Text Search**: SQLite FTS5 with advanced query syntax
- **Intelligent Linking**: AI-suggested connections between notes
- **Multiple Interfaces**: CLI, REST API, Streamlit UI, and MCP server
- **Comprehensive Documentation**: Setup guides and examples included

### MCP Server Details
- **Transport**: STDIO
- **Tools**: 7 comprehensive tools for note management and AI workflows
- **Dependencies**: OpenAI API (optional, has stub mode)
- **Python**: 3.11+ with modern async/await patterns
- **Setup**: Automated setup script with Claude Desktop config generation

### Repository Information
- **URL**: https://github.com/joshylchen/zettelkasten
- **License**: MIT
- **Documentation**: Complete setup guide in `docs/MCP_SETUP.md`
- **Tests**: Comprehensive test coverage included

This server demonstrates sophisticated MCP patterns and provides real value for knowledge workers and researchers using AI assistants.
2025-09-15 16:43:18 +08:00
Stefano Amorelli
ec7eaadfcd
feat(readme): add Storybook MCP server to community servers list 2025-09-14 14:15:19 +03:00
Ola Hungerford
4ebc9c2203
Merge pull request #2713 from zkl2333/patch-2
docs: Fix duplicate directory_tree tool entry in README.md
2025-09-13 20:50:46 -07:00
Ola Hungerford
0d439da520
Merge pull request #2709 from koic/add_php_sdk
[Docs] Add PHP SDK link to README
2025-09-13 20:49:59 -07:00
Ola Hungerford
31ca475b06
Merge branch 'main' into add_php_sdk 2025-09-13 20:49:22 -07:00
Ola Hungerford
1a6b3db1f1
Merge pull request #2696 from algis-dumbris/add-gcore-mcp-server
Add Gcore MCP server to catalog
2025-09-13 20:46:50 -07:00
Ola Hungerford
a3179bec35
Merge pull request #2690 from gmichnikov/add-looker-to-mcp-toolbox
Add Looker to MCP Toolbox for Databases supported list
2025-09-13 20:42:19 -07:00
Ola Hungerford
35f64eb90c
Merge pull request #2688 from JonZeolla/Zenable-MCP
Add the Zenable MCP server
2025-09-13 20:41:59 -07:00
Ola Hungerford
7b826d061a
Merge pull request #2683 from krzysztofkucmierz/add-search-mcp-server-to-readme
Added Search MCP Server to README.md
2025-09-13 20:36:34 -07:00
Ola Hungerford
3bea5541bc
Merge pull request #2682 from shuowang-ai/patch-2
Add KnowAir Weather MCP to README
2025-09-13 20:34:33 -07:00
Ola Hungerford
e73732f907
Merge pull request #2681 from sn1p4am/main
Add Modao Proto MCP server
2025-09-13 20:33:29 -07:00
Ola Hungerford
3359ff452e
Merge pull request #2679 from Horizon-Digital-Engineering/main
Add FPE Demo MCP to community servers
2025-09-13 20:32:43 -07:00
Ola Hungerford
e03608b024
Merge pull request #2665 from ParastooGM/add-emberai-mcp
Add EmberAI MCP Server.
2025-09-13 20:24:49 -07:00
多吃点
097fdab463
docs: Fix duplicate directory_tree tool entry in API documentation 2025-09-13 13:00:02 +08:00
Dumbris
135e5271f1
Merge branch 'main' into add-mcpproxy-server 2025-09-13 07:46:47 +03:00
danohn
bf29346320
Add mcpcap to README.md (#2701) 2025-09-12 14:25:42 -07:00
Josh Free
208e764648
Update Azure MCP link in README.md (#2705)
* Update Azure MCP link in README.md

Azure MCP Server moved from /azure/azure-mcp to /microsoft/mcp on 2025-08-25.

The old /azure/azure-mcp repo has been archived as all new development continues in the new /microsoft/mcp monorepo.

* Update path to Azure MCP src
2025-09-12 14:22:18 -07:00
Koichi ITO
4b25d5f212 [Docs] Add PHP SDK link to README
Follow-up to https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1422.

This PR adds a link to the PHP SDK in the README.
2025-09-13 00:46:16 +09:00
shinpr
24de7f7561 Add Intelligent Image Generator to Community Servers
Adds mcp-image server that turns casual prompts into professional-quality images with AI enhancement
2025-09-12 10:39:42 +09:00
Raveen Beemsingh
2954894a9e
Add Fal MCP Server (#2668)
* Add Fal MCP Server to official directory

Fal MCP Server enables AI image, video, and music generation directly in Claude using Fal.ai models including FLUX, Stable Diffusion, and MusicGen.

- Published on PyPI: https://pypi.org/project/fal-mcp-server/
- Docker image available on GitHub Container Registry
- Comprehensive documentation: https://raveenb.github.io/fal-mcp-server/
- Native async API for optimal performance

* Move Fal MCP Server to Community servers section

This is not an official Fal.ai server but rather a third-party
implementation created for personal use.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Adam Jones <adamj@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-11 18:17:43 -07:00
Blaž Stojanovič
56bc00d615
Add kumo-rfm-mcp to the README.md (#2674)
Co-authored-by: Matthias Fey <matthias.fey@tu-dortmund.de>
2025-09-11 17:56:42 -07:00
Muhammad Afzaal
fb63620f2c
Add D365FO-Client project to README (#2671)
Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-09-11 17:55:54 -07:00
dpetruchik
17c306038b
Add new Linked API MCP server (#2624)
Co-authored-by: Adam Jones <adamj@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-11 17:52:59 -07:00
Adrian Arribas
9e2072a3d6
Add Gemini Bridge MCP server to third-party servers list (#2629)
Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-09-11 17:46:02 -07:00
Dmitry Batkovich
a191d5d1cd
Update information on JetBrains MCP server (#2622)
Co-authored-by: Dmitry Batkovich <dmitry.batkovich@jetbrains.com>
Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-09-11 17:43:36 -07:00
Scott Lewis
cc8038b786
Add ToolGroups example servers (#2699)
Signed-off-by: Scott Lewis <scottslewis@gmail.com>
Co-authored-by: Cliff Hall <cliff@futurescale.com>
2025-09-11 17:39:34 -07:00
Andrea Bravaccino
35c7a5eaff
update mcp-documentation-server description (#2704)
update mcp-documentation-server description
2025-09-11 17:33:59 -07:00
Cliff Hall
c3093739ca
Let Everything's STDIO server use SDK's automatic log level handling (#2706)
- bump TS SDK to 1.18.0
* In src/everything/stdio.ts
  - remove logging related imports
  - remove custom log-level handling, now handled automatically by the SDK
* In src/everything/everything.ts
  - remove console.log of sessionId
2025-09-11 17:31:49 -07:00
Algis Dumbris
521d445472 Add MCPProxy server to catalog
- Added MCPProxy entry in correct alphabetical position (between Multiplayer and NanoVMs)
- Open-source local app enabling access to multiple MCP servers and thousands of tools
- Features intelligent discovery via MCP protocol and quarantine protection
- Runs servers in isolated environments for enhanced security
2025-09-09 16:47:02 +03:00
Algis Dumbris
a54e97b37f Update Gcore MCP server description
- Expand description to include full range of Gcore platform services
- Add CDN, GPU Cloud & AI Inference, Video Streaming, WAAP services
- Change from "Cloud API" to "platform services" for accuracy
- Maintain unified access approach and cloud resources mention
2025-09-09 16:13:07 +03:00
Algis Dumbris
c2538841f1 Add Gcore MCP server to catalog
- Added Gcore MCP server entry in alphabetical order
- Provides unified configuration for Gcore Cloud API interactions
- Supports cloud resource management including instances, networks, and GPU clusters
2025-09-09 16:01:56 +03:00
tanveer-farooq
7f45f7779e
Update README.md
- Updated name from "HyperExecute MCP Server" to "LambdaTest MCP Server" as part of unification.
- Adjusted row order in README to follow the repo’s name sequence convention.
- No functional/code changes, only documentation alignment
2025-09-09 14:51:31 +05:30
Joshua Grippo
a076078bb9
Add Backdocket MCP server information to README 2025-09-08 12:38:25 -05:00
Shuo Wang
d08598ff80
Merge branch 'main' into patch-2 2025-09-08 19:49:46 +08:00
s1p
d2d749ca4d
Merge branch 'main' into main 2025-09-08 10:05:53 +08:00
Greg Michnikov
74540ea67d Add Looker to MCP Toolbox for Databases supported list 2025-09-07 02:07:30 -04:00
JonZeolla
9052052904
Add the Zenable MCP server 2025-09-06 08:25:20 -04:00
Cliff Hall
8ba0ff5e4c
Merge pull request #2672 from modelcontextprotocol/fix/notification-stream
direct long running tool progress notifications to correct stream
2025-09-05 12:51:17 -04:00
tanveer-farooq
18577e7022
Update README.md 2025-09-05 17:55:52 +05:30
Krzysztof Kućmierz
8594351400 Added Search MCP Server to README.md 2025-09-05 10:03:34 +02:00
Shuo Wang
af4b9371bb
Add KnowAir Weather MCP to README
Added KnowAir Weather MCP project to the list of MCP servers.
2025-09-05 15:36:43 +08:00
sn1p4am
e433fe5ac0 Add Modao Proto MCP server to README
- Add Modao Proto MCP to the third-party servers list
- AI-powered HTML prototype generation server
- Converts natural language descriptions into complete HTML code
- Maintains alphabetical order in the list
2025-09-05 11:49:45 +08:00
Leslie Gutschow
7537f529d7 Add FPE Demo MCP to community servers
- Adds FF3 Format Preserving Encryption MCP server
- Demonstrates authentication patterns for secure data protection
- Positioned alphabetically in community servers section
2025-09-04 22:31:32 -04:00
Parastoo Gol Mohammadi
15a11a2810
Update README.md
update ember link
2025-09-04 08:21:34 -04:00
ParastooGM
14018d9086 Merge branch 'main' into add-emberai-mcp 2025-09-04 08:19:32 -04:00
Kirk Marple
893248c61c Add Zine MCP server to the list of official integrations in README.md 2025-09-03 22:48:47 -07:00
evalstate
4c91d59d16 direct long running tool progress notifications to correct stream 2025-09-03 11:03:06 +02:00
Ola Hungerford
ae0be7d7c3
Merge pull request #2670 from Mrbaeksang/main
Add Korea Stock Analyzer MCP server
2025-09-02 22:32:53 -07:00
Ola Hungerford
4bc7c2b9c0
Merge pull request #2664 from jirispilka/fix/apify-mcp
fix: Update link/description for Apify's MCP server
2025-09-02 22:28:35 -07:00
Ola Hungerford
fd3f5f45fa
Merge pull request #2662 from deepak-scan/patch-2
Add the Scanova MCP Server to the list of MCP Servers
2025-09-02 22:26:20 -07:00
Ola Hungerford
4ec2f4fcb1
Merge pull request #2653 from nokia/add-redfish-mcp
Add the Redfish MCP Server to the list of MCP Servers
2025-09-02 22:24:29 -07:00
Ola Hungerford
26719c060b
Merge pull request #2652 from heyder/thehive_mcp_server
Add TheHive MCP server to MCP servers list
2025-09-02 22:23:18 -07:00
Ola Hungerford
c8c56b745b
Merge pull request #2650 from garylab/main
Add Pexels MCP server for Pexels API for searching and retrieving photos, videos, and collections.
2025-09-02 22:20:00 -07:00
Ola Hungerford
0a5ede7b9f
Merge pull request #2648 from st3v3nmw/add-sourcerer
Add Sourcerer MCP
2025-09-02 22:19:32 -07:00
Ola Hungerford
99004e8aab
Merge pull request #2647 from thisisbhanuj/patch-2
Added Snowflake Cortex Agent MCP Server
2025-09-02 22:18:48 -07:00
Ola Hungerford
754258ded7
Merge pull request #2643 from stefanoamorelli/feat/qonto-mcp-server
feat: add Qonto MCP server
2025-09-02 22:15:15 -07:00
Ola Hungerford
6655041ff0
Merge pull request #2642 from BestYifu/feature/pdf-action-inspector
Add PDFActionInspector to third-party servers
2025-09-02 22:14:28 -07:00
Ola Hungerford
9f786a81ec
Merge pull request #2649 from Chesars/docs/farewell-vrknetha/mcp-server-firecrawl-now-redirects-to-official
docs: farewell vrknetha/mcp-server-firecrawl now 301-redirect to official entry
2025-09-02 22:10:27 -07:00
Ola Hungerford
e322daf123
Merge pull request #2669 from cliffhall/auto-log-level-support-in-everything-server
Everything server - fix regression + auto log level handling support
2025-09-02 22:05:12 -07:00
Mrbaeksang
fe9aedae98 Add Korea Stock Analyzer MCP server 2025-09-03 10:03:54 +09:00
cliffhall
97c6408f04 * in .gitignore
- add .idea/ for Jetbrains IDEs
* in everything.ts
  - remove import of SetLevelRequestSchema
  - remove logLevel var
  - add sessionId var
  - in startNotificationIntervals function
    - add optional sid argument
    - set sessionId to sid
    - define messages to be sent, adding sessionId if present
  - remove setRequestHandler call for SetLevelRequestSchema
  - replace server.notification calls that sent "notifications/message" objects with calls to server.sendLoggingMessage, passing just the parameters and sessionId.
* In package.json & package-lock.json
  - bump TS SDK version to 1.17.5
* In sse.ts, pass transport.sessionId to startNotificationIntervals call
* In stdio.ts
  - destructure startNotificationIntervals from createServer call
  - implement custom logging request handler and server.sendLoggingMessage implementation, as a
  workaround for the fact that the SDK's automatic log level handling currently only tracks requested log level by session id. This will be fixed in a followup PR for the SDK
  - call the startNotificationIntervals function after connecting the transport to the server
* In streamableHttp.ts
  - destructure startNotificationIntervals from createServer call
  - call startNotificationIntervals passing the transport.sessionId after connecting the transport to the server
2025-09-02 17:18:11 -04:00
Kendall Miller
edf89cb3d3
Add the Maybe Don't AI Policy Engine to the list of MCP Servers 2025-09-02 09:22:20 -06:00
Parastoo Gol Mohammadi
f974d62755
Update README.md 2025-09-02 12:18:18 +02:00
Jiri Spilka
0f4a1c20d9 fix: Update Apify MCP server link and description 2025-09-02 09:46:26 +02:00
Deepak Tiwari
bad0167995
Updated Scanova mcp URL 2025-09-01 15:21:10 +05:30
Deepak Tiwari
c337da8cf7
Update README.md
Adding Scanova MCP
2025-09-01 14:48:08 +05:30
Laszlo Janosi
5eb2c4b7d0 Add the Redfish MCP Server to the list of MCP Servers 2025-09-01 07:48:53 +00:00
Heyder Andrade
7212b20823
Add TheHive MCP server to MCP servers list 2025-08-31 23:21:01 +02:00
Gary Meng
b862313258
Add Pexels Royalty-free Images Search 2025-08-30 21:00:04 +04:00
Gary Meng
467492054d
Correct the serper mcp server 2025-08-30 20:56:29 +04:00
Cesar Garcia
4418225d27 docs: update official Firecrawl MCP server URL 2025-08-30 12:58:47 -03:00
Cesar Garcia
cc11ce9182 docs(Reamde): deprecated entry that 301-redirects to the official server 2025-08-30 12:11:37 -03:00
Stephen Mwangi
095bec75be
Add Sourcerer MCP 2025-08-30 14:04:31 +03:00
hongtao huang
3b48688d95
Merge branch 'main' into feature/pdf-action-inspector 2025-08-30 11:02:30 +08:00
Bhanuj Kashyap
3534b2acc9
Added Snowflake Cortex Agent MCP Server
This Snowflake MCP server provides tooling for Snowflake Cortex AI features, bringing these capabilities to the MCP ecosystem. When connected to an MCP Client (e.g. Claude for Desktop, fast-agent, Agentic Orchestration Framework), users can leverage these Cortex AI features.
2025-08-30 12:36:28 +10:00
Ola Hungerford
3631d2263a
Merge pull request #2644 from modelcontextprotocol/adamj/fix-scheduled-release-forks
fix: only run scheduled release pipeline on modelcontextprotocol org
2025-08-29 08:06:03 -07:00
Adam Jones
29aba77a93
fix: only run scheduled release pipeline on modelcontextprotocol org 2025-08-29 14:35:23 +01:00
Ola Hungerford
38de94b7ad
fix: update temperature argument type from number to string in everything server docs (#2610)
Fixes issue #474 - documentation mismatch where temperature was documented as (number) but TypeScript SDK only accepts string arguments via z.record(z.string())

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Ola Hungerford <olaservo@users.noreply.github.com>
2025-08-29 12:16:50 +01:00
Stefano Amorelli
7ec182b89b
feat: add Qonto MCP server 2025-08-29 10:53:06 +03:00
hongtao huang
6675ab7412
Merge branch 'main' into feature/pdf-action-inspector 2025-08-29 13:36:25 +08:00
hongtao_huang
d86d9c3ac9 Add PDFActionInspector to third-party servers
Add Foxit's PDFActionInspector MCP server to the official integrations list.
PDFActionInspector provides JavaScript Actions extraction and security
analysis for PDF files, enabling AI-assisted detection of malicious
PDF behaviors and potential security threats.
2025-08-29 13:15:44 +08:00
Ola Hungerford
35c30ddb5f
Merge pull request #2636 from zurferr/patch-2
Add Dot (GetDot.ai) integration details to README
2025-08-28 21:28:11 -07:00
Ola Hungerford
b920f3c977
Merge pull request #2640 from kmckiern/add-mandoline-mcp-server
feat(readme): add Mandoline MCP server to community servers list
2025-08-28 21:27:43 -07:00
Ola Hungerford
7f66e84d0c
Merge pull request #2639 from avd1729/add-onyx-server
Add Onyx MCP Sandbox to community servers list
2025-08-28 21:27:19 -07:00
Ola Hungerford
702bf90208
Merge pull request #2638 from samyakkkk/main
doc: add Olostep MCP
2025-08-28 21:26:54 -07:00
Ola Hungerford
ceadee2752
Merge pull request #2635 from PCfVW/add-mcp-arangodb-async-link
Add link to mcp-arangodb-async server
2025-08-28 21:26:23 -07:00
Ola Hungerford
30831bc570
Merge pull request #2634 from chihiro-adachi/chore/add-kintone-to-readme
Add Kintone MCP Server To README.md
2025-08-28 21:25:41 -07:00
Ola Hungerford
7aef1b638e
Merge pull request #2632 from DerekMelchin/patch-2
Add QuantConnect MCP Server to README
2025-08-28 21:25:16 -07:00
Ola Hungerford
e1f83cda40
Merge pull request #2628 from explorium-ai/main
Add Explorium to the list of integrations
2025-08-28 21:23:49 -07:00
Ola Hungerford
6848e62d98
Merge pull request #2625 from JaerongA/add-omop-mcp-server
doc(readme): add OMOP MCP to community servers list
2025-08-28 21:22:45 -07:00
Cliff Hall
28dc8ca4d2
Merge branch 'main' into claude/issue-2361-20250817-1626 2025-08-28 17:23:24 -04:00
Aravind M S
35a168e4e9
Merge branch 'main' into add-onyx-server 2025-08-29 00:13:36 +05:30
Ola Hungerford
9feeb51009
Merge pull request #2641 from cliffhall/conditional-elicitation-tool
Make presence of `startElicitation` tool conditional on client support
2025-08-28 11:27:59 -07:00
cliffhall
a32f15750d Suppress startElicitation tool if client does not advertise support for elicitation capability
* In everything.ts
  - remove inappropriate elicitation entry from server capabilities (this is a client capability)
  - When creating tool list, only add `ToolName.ELICITATION` definition to tools array if `clientCapabilities` includes `elicitation`

* In package.json / package-lock.json
  - bump @modelcontextprotocol/sdk to "^1.17.4", adding `elicitation` to `ClientCapabilities` type
2025-08-28 14:13:47 -04:00
kmckiern
00492a616e feat(readme): add Mandoline MCP server to community servers list
Add Mandoline AI evaluation framework MCP server to the community servers section.
Enables AI assistants to reflect on and continuously improve their performance.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 10:46:30 -07:00
Aravind M S
7d3770605f
Merge branch 'main' into add-onyx-server 2025-08-28 22:48:40 +05:30
Cliff Hall
d47104ad00
Merge pull request #2573 from AjayKumbham/add-roots-support-to-everything-server
feat: add MCP roots protocol support to everything server
2025-08-28 13:04:29 -04:00
AjayKumbham
c45c0e26a0 fix: add missing ClientCapabilities import 2025-08-28 22:25:46 +05:30
Kumbham Ajay Goud
d321841519
Update src/everything/everything.ts
Co-authored-by: Cliff Hall <cliff@futurescale.com>
2025-08-28 22:17:07 +05:30
Kumbham Ajay Goud
2b8ba4ac9f
Update src/everything/everything.ts
Co-authored-by: Cliff Hall <cliff@futurescale.com>
2025-08-28 22:16:52 +05:30
Kumbham Ajay Goud
d279ace6b4
Update src/everything/everything.ts
Co-authored-by: Cliff Hall <cliff@futurescale.com>
2025-08-28 22:16:33 +05:30
Aravind
e8c23574e3 Add Onyx MCP Sandbox to community servers list 2025-08-28 21:57:22 +05:30
Samyak Jain
5c751420e1
doc: add Olostep MCP 2025-08-28 17:19:12 +05:30
AjayKumbham
f51757eedb fix: remove roots from server capabilities - it's a client capability 2025-08-28 16:21:48 +05:30
Rick
188ac63dc7
moved one place down 2025-08-28 10:39:56 +02:00
Rick
c97e6bd528
Add Dot (GetDot.ai) integration details to README 2025-08-28 10:38:15 +02:00
PCfVW
a017201b42 Add link to mcp-arangodb-async server 2025-08-28 09:06:12 +02:00
Chihiro Adachi
267c79e296 Add Kintone MCP Server To README.md 2025-08-28 15:37:33 +09:00
Derek Melchin
ffe62ffb5c
Add QuantConnect MCP Server to README 2025-08-27 09:42:01 -06:00
AjayKumbham
96ea8d1eb9 Merge branch 'add-roots-support-to-everything-server' of https://github.com/AjayKumbham/servers into add-roots-support-to-everything-server 2025-08-27 20:25:41 +05:30
AjayKumbham
39c1ca8df0 feat: improve roots messaging to distinguish client support vs configuration
- Add clientSupportsRoots tracking variable
- Set clientSupportsRoots during initialization based on client capabilities
- Update listRoots tool to provide clearer messaging:
  - Specific message when client doesn't support roots protocol
  - Different message when client supports roots but none are configured
- Improves user experience by clearly explaining the different scenarios

Addresses feedback from @olaservo in PR review
2025-08-27 20:24:23 +05:30
Ola Hungerford
f92c913dd4
Merge branch 'main' into claude/issue-2361-20250817-1626 2025-08-27 05:10:16 -07:00
Maayan Yosef
83ba754288
Add Explorium to the list of integrations 2025-08-27 12:00:06 +03:00
JaerongA
37aa1f3e73
Update README.md
Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
2025-08-26 23:41:35 -05:00
Ola Hungerford
58c3e9ae35
Merge branch 'main' into add-roots-support-to-everything-server 2025-08-26 21:18:30 -07:00
Ola Hungerford
e3284edb47
Merge pull request #2604 from aardeshir/main
Create README.md for YouTube MCP Server
2025-08-26 21:16:45 -07:00
Ola Hungerford
6b7e2cf661
Merge pull request #2620 from Fredibau/add-wikifunctions-server
docs: Add Wikifunctions to community servers list
2025-08-26 21:11:29 -07:00
Ola Hungerford
1c0108448b
Merge pull request #2617 from mochow13/mochow13/ticketmaster-mcp
Add ticketmaster-mcp-server
2025-08-26 21:10:54 -07:00
Jaerong Ahn
8940b98686 feat(readme): add OMOP MCP to community servers list 2025-08-26 15:05:54 -05:00
Amir Ardeshir, DVM, MPVM, PhD
cccea03754
Update YouTube MCP link in README.md
Update YouTube MCP link to external repository as requested
2025-08-26 11:47:26 -05:00
Amir Ardeshir, DVM, MPVM, PhD
6bb62fb4cf
Delete src/youtube/README.md
Remove src/youtube directory as requested by reviewer
2025-08-26 11:41:33 -05:00
Amir Ardeshir, DVM, MPVM, PhD
db9a2d637b Remove src/youtube folder as requested by reviewer 2025-08-26 11:31:36 -05:00
Kumbham Ajay Goud
c51480bb30
Merge branch 'main' into add-roots-support-to-everything-server 2025-08-26 21:53:52 +05:30
Ola Hungerford
e968c6c8fc
Merge pull request #2611 from modelcontextprotocol/claude/issue-2598-20250824-0325
Improve parameter descriptions in sequential-thinking for better LLM type safety
2025-08-26 08:04:06 -07:00
Ola Hungerford
d964873814
Merge branch 'main' into claude/issue-2361-20250817-1626 2025-08-26 08:03:45 -07:00
Ola Hungerford
fe9db630ad
Merge pull request #2607 from modelcontextprotocol/adamj/contributing-docs
refactor(CONTRIBUTING.md): streamline contribution guidelines and improve clarity
2025-08-26 07:57:28 -07:00
Frederik Bauer
6464d332d5 docs: Small change in description for Wikifunctions server 2025-08-26 12:26:20 +02:00
Frederik Bauer
7c823f9e03 chore: Trigger CI re-run 2025-08-26 12:12:36 +02:00
Frederik Bauer
e87e79635d docs: Add Wikifunctions to community servers list 2025-08-26 11:51:13 +02:00
Ola Hungerford
4aade950f3
Merge branch 'main' into adamj/contributing-docs 2025-08-25 21:36:51 -07:00
Motta Kin
0a7cfc673a Add ticketmaster-mcp-server 2025-08-26 01:02:02 +02:00
claude[bot]
9b6892dc9a Reorganize CONTRIBUTING.md: move MCP protocol features to 'we welcome' section and rename to 'other new features'
Co-authored-by: adam jones <domdomegg@users.noreply.github.com>
2025-08-25 17:45:48 +00:00
claude[bot]
414f98c35e Apply review feedback: improve language accessibility and add MCP protocol features guidance
- Replace 'Ergonomic improvements' with 'Usability improvements' for better accessibility
- Add guidance encouraging enhancements that demonstrate underutilized MCP protocol features

Co-authored-by: adam jones <domdomegg@users.noreply.github.com>
2025-08-25 17:42:12 +00:00
Tosin Akinosho
c8fe7d995b
feat(readme): add documcp to community servers list (#2614)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-08-25 18:31:29 +01:00
Denis Bondarenko
666cba47d5
Add triplyfy-mcp to community servers list (#2616) 2025-08-25 18:31:00 +01:00
Ernesto García
43a625917f
Add official Todoist MCP server to README (#2612) 2025-08-25 18:28:40 +01:00
Stefano Amorelli
1445af12f4
feat: add companies house mcp (#2613) 2025-08-25 18:27:33 +01:00
Mohamed Amine Berguiga
09adff0b29
feat(git): add date-based commit log retrieval functions (#2057)
Co-authored-by: adam jones <domdomegg+git@gmail.com>
2025-08-25 18:26:32 +01:00
Amir Ardeshir, DVM, MPVM, PhD
aa3297738a
Add YouTube MCP entry to README 2025-08-24 09:39:07 -05:00
claude[bot]
ec91421265 Improve parameter descriptions in sequential-thinking for better LLM type safety
Update thoughtNumber and totalThoughts parameter descriptions to use positive-only examples that guide LLMs toward correct numeric type usage. This addresses the issue where LLMs sometimes generate string values (e.g. "1") instead of numeric values (e.g. 1) for integer parameters.

Co-authored-by: Ola Hungerford <olaservo@users.noreply.github.com>
2025-08-24 03:27:40 +00:00
claude[bot]
eb58a522b3 Add clearer console error messages for memory file migration detection
- Added DETECTED message when legacy memory.json file is found
- Added COMPLETED message when migration finishes successfully
- Improves visibility of backward compatibility migration process

Co-authored-by: Ola Hungerford <olaservo@users.noreply.github.com>
2025-08-24 03:01:06 +00:00
claude[bot]
53104a65e9 Add backward compatibility for memory.json -> memory.jsonl migration
When no custom MEMORY_FILE_PATH is set and memory.json exists but
memory.jsonl doesn't exist, automatically migrate the old file to
the new format with proper file extension.

This ensures existing users don't lose their data when upgrading
to the version with the corrected .jsonl extension.

Co-authored-by: Ola Hungerford <olaservo@users.noreply.github.com>
2025-08-24 02:51:58 +00:00
claude[bot]
29c9f8c58e fix: resolve relative paths against allowed directories instead of process.cwd()
Fixes issue where relative paths were incorrectly resolved against process.cwd(),
causing "Access denied - path outside allowed directories" errors when the MCP
server's working directory was outside the configured allowed directories.

The fix implements intelligent path resolution that:
1. First tries to resolve relative paths against each allowed directory
2. Validates the resulting path is within allowed directories
3. Falls back to the first allowed directory if no valid resolution is found
4. Maintains backward compatibility by falling back to process.cwd() when no allowed directories are configured

Resolves #2526

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Ola Hungerford <olaservo@users.noreply.github.com>
2025-08-24 02:44:31 +00:00
Ola Hungerford
338d8af7a6
Merge pull request #2602 from sebastien-rosset/read_multiple_files
Improve documentation for the `read_multiple_files` action
2025-08-23 12:22:06 -07:00
Sebastien Rosset (serosset)
b647cb3019 Add documentation for the read_multiple_files action. 2025-08-23 10:51:51 -07:00
Juliette Sivan
2a4b7b0649
feat(readme): add Linkup MCP server to the list of offical integrations (#2575)
Co-authored-by: Adam Jones <adamj@anthropic.com>
2025-08-23 08:29:17 +01:00
Adam Jones
c6cccec4e9
refactor(CONTRIBUTING.md): streamline contribution guidelines and improve clarity 2025-08-23 07:04:42 +00:00
Finn Andersen
fd886fac9c
Support glob pattern in search_files tool (#745)
Co-authored-by: Adam Jones <adamj+git@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Adam Jones <adamj@anthropic.com>
2025-08-23 07:37:53 +01:00
Enrico Ballardini
d381cf1ffd
feat(directory_tree): add excludePatterns support & documentation (#623)
- Update documentation with directory_tree declaration
- Add excludePatterns parameter to DirectoryTreeArgsSchema
- Implement pattern exclusion in buildTree function using minimatch
- Pass excludePatterns through recursive calls
- Support both simple and glob patterns for exclusion
- Maintain consistent behavior with search_files implementation

* Add tests and fix implementation

---------

Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
Co-authored-by: Adam Jones <adamj+git@anthropic.com>
Co-authored-by: Adam Jones <adamj@anthropic.com>
2025-08-23 07:19:01 +01:00
Ola Hungerford
eada35985b
Merge branch 'main' into add-roots-support-to-everything-server 2025-08-22 21:19:36 -07:00
Ola Hungerford
46d0b1f926
Merge pull request #2601 from isnow890/patch-6
feat: add Data4Library MCP server to the readme
2025-08-22 20:55:36 -07:00
Ola Hungerford
30367fd86c
Merge pull request #2600 from ai-cora/update-voicemode-listing
Update Voice MCP to Voice Mode
2025-08-22 20:55:01 -07:00
Ola Hungerford
fe92a89cd7
Merge pull request #2599 from nikkoxgonzales/patch-2
Add CRASH-MCP to community servers list
2025-08-22 20:54:36 -07:00
Ola Hungerford
98ab9c2973
Merge pull request #2597 from doobidoo/add-mcp-context-provider
Add MCP Context Provider and mcp-memory-service to community servers list
2025-08-22 20:54:08 -07:00
Ola Hungerford
b610be4b84
Merge pull request #2593 from ComposioHQ/docs/add-rube-server
Add Rube MCP server to README.md
2025-08-22 20:53:35 -07:00
Ola Hungerford
fe42f459c9
Merge pull request #2589 from QuentinCody/add-quentin-mcp-servers
Add 12 bioinformatics and research MCP servers to community section
2025-08-22 20:52:52 -07:00
Amir Ardeshir, DVM, MPVM, PhD
afd3ae2dc1
Create README.md for YouTube MCP Server
Added README.md for YouTube MCP Server with features and installation instructions.
2025-08-22 19:02:03 -05:00
isnow890
1aee44a951
feat: add Data4Library MCP server to the readme 2025-08-23 00:20:39 +09:00
Cora 7
cf4ffdb0bf Update Voice MCP to Voice Mode
Voice MCP has been renamed to Voice Mode. This updates:
- Name from 'Voice MCP' to 'Voice Mode'
- GitHub URL from voice-mcp to voicemode
- Website from voice-mcp.com to voicemode.ai
2025-08-23 00:49:53 +10:00
Nikko Gonzales
ed51a7dcf9
Update README.md 2025-08-22 22:37:36 +08:00
QuentinCody
e269066b29
Merge branch 'main' into add-quentin-mcp-servers 2025-08-22 10:12:11 -04:00
Prathit
3bb87cb040
docs: updated rube link in README.md 2025-08-22 13:49:22 +05:30
doobidoo
e7f235a6c0 Add mcp-memory-service to community servers list
Add mcp-memory-service to the Third-Party Servers section in alphabetical order. This universal memory service provides semantic search, persistent storage, and autonomous memory consolidation for AI assistants across multiple platforms.
2025-08-22 07:48:59 +02:00
doobidoo
f1b4fd2856 Add MCP Context Provider to community servers list
Add MCP Context Provider to the Third-Party Servers section in alphabetical order. This server provides AI models with persistent tool-specific context and rules, preventing context loss between chat sessions.
2025-08-22 07:40:20 +02:00
Zehra Nur Olgun
60eb7c28ad
feat: add day of week to time result (#2580) 2025-08-22 03:48:39 +01:00
Peggy Rayzis
d59cb832ce
Add official Render MCP server to README.md (#2594)
Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
2025-08-22 03:39:19 +01:00
Ola Hungerford
b20a685e57
Merge pull request #2590 from psegedy/patch-4
Add Red Hat Insights MCP to README.md
2025-08-21 19:30:34 -07:00
Ola Hungerford
532682240c
Merge pull request #2591 from Program-Integrity-Alliance/main
Add Program Integrity Alliance (PIA) MCP server to Official Integrations in README
2025-08-21 19:30:04 -07:00
Ola Hungerford
03d8c80bab
Merge pull request #2592 from hyelang/main
Add fast-filesystem-mcp to Community Servers
2025-08-21 19:28:51 -07:00
Ola Hungerford
6de4b8f7c5
Merge pull request #2595 from zoedsoupe/patch-2
chore: rename hermes-mcp to anubis-mcp
2025-08-21 19:26:56 -07:00
Ola Hungerford
7a6db468b9
Merge pull request #2576 from tomaspavlin/patch-2
Update README.md
2025-08-21 19:23:52 -07:00
Ola Hungerford
b0ffa52d73
Merge pull request #2581 from coffeegoddd/db/dolt-mcp
README.md: add dolt-mcp
2025-08-21 19:23:32 -07:00
Ola Hungerford
4347624088
Merge pull request #2583 from KiraJin223/patch-2
Update README.md
2025-08-21 19:22:57 -07:00
Ola Hungerford
5a76b9febc
Merge pull request #2584 from call518/mcp-postgresql-ops
Add MCP-PostgreSQL-Ops in Community Servers
2025-08-21 19:22:04 -07:00
Ola Hungerford
2bcc15ba24
Merge pull request #2585 from ruslanbay/add-finmap-mcp-server
Add finmap.org MCP server
2025-08-21 19:21:32 -07:00
Ola Hungerford
9be6cf5107
Merge pull request #2586 from AmsterGet/main
Add ReportPortal MCP server
2025-08-21 19:20:54 -07:00
Ola Hungerford
35b87fac2b
Merge pull request #2588 from vorburger/bump-brace-expansion
Fix low severity security vulnerability in memory server by running npm audit fix
2025-08-21 19:20:15 -07:00
zoey
bc360a8b9a
chore: rename hermes-mcp to anubis-mcp 2025-08-21 18:55:28 -03:00
Prathit
11d9d6caf8 feat: add Rube MCP server to the readme 2025-08-21 05:09:22 +00:00
efforthye
b20b919e2f
Add fast-filesystem-mcp to Community Servers
Added fast-filesystem-mcp to the Community Servers section.

This enterprise-grade filesystem MCP server provides.
- Advanced filesystem operations with Claude optimization
- Large file handling with streaming capabilities
- Sequential reading with continuation tokens
- Comprehensive directory operations and file search
- Enterprise-grade stability with overflow protection
- Automatic backup and recovery features

Repository: https://github.com/efforthye/fast-filesystem-mcp
NPM: https://www.npmjs.com/package/fast-filesystem-mcp

Follows alphabetical order in Community Servers section.
2025-08-21 12:35:39 +09:00
Matthew Harris
c23c5ec8ab Added PIA to README 2025-08-20 17:29:36 -06:00
Matthew Harris
1566b328b7 Added PIA to README 2025-08-20 17:28:03 -06:00
Matthew Harris
2eb1e03f18 Added PIA to README 2025-08-20 17:27:01 -06:00
Patrik Segedy
55d2118f17
Add Red Hat Insights MCP to README.md 2025-08-20 23:49:50 +02:00
Quentin Cody
4f611634e8 Add 12 bioinformatics and research MCP servers to community section
- Add CIViC MCP server for clinical variant interpretation
- Add DataCite MCP server for research data and publication metadata
- Add DGIdb MCP server for drug-gene interaction data
- Add Entrez MCP server for NCBI biomedical databases
- Add NCI GDC MCP server for cancer genomic data
- Add OpenNeuro MCP server for open neuroimaging datasets
- Add Open Targets MCP server for target-disease associations
- Add Pharos MCP server for target, drug, and disease information
- Add RCSB PDB MCP server for 3D protein structures
- Add UniProt MCP server for protein sequence and functional data
- Add Wikidata SPARQL MCP server for structured knowledge queries
- Add ZincBind MCP server for zinc binding sites in proteins

All servers added in alphabetical order following contribution guidelines.
2025-08-20 17:34:37 -04:00
Michael Vorburger
81fdd1869e Fix low severity security vulnerability in memory server by running npm audit fix 2025-08-20 23:28:17 +02:00
Sunish Sheth
03679e01cc
Adding databricks official MCP server to list of community servers for MCP (#2587) 2025-08-20 19:55:23 +01:00
Ilya
009fb81fa4
Update README.md 2025-08-20 17:08:48 +02:00
ruslanbay
40ad524c15 Add finmap.org MCP server 2025-08-20 13:31:05 +00:00
JungJungIn
e4d38e9e7a Add MCP-PostgreSQL-Ops in Community Servers 2025-08-20 22:11:45 +09:00
KiraJin223
f228137086
Update README.md
Add an official MCP Server form Tencent RTC https://trtc.io/. 
[Tencent RTC](https://github.com/Tencent-RTC/mcp)- The MCP Server enables AI IDEs to more effectively understand and use [Tencent's Real-Time Communication](https://trtc.io/) SDKs and APIs, which significantly streamlines the process for developers to build audio/video call applications.
2025-08-20 17:59:50 +08:00
Tomas Pavlin
7fd43cc9cd
Moved Rohlik MCP to community section 2025-08-20 09:54:35 +02:00
coffeegoddd☕️✨
a089f91286 README.md: add dolt-mcp 2025-08-19 15:03:22 -07:00
Ola Hungerford
bfa699fb8d
Merge pull request #2572 from yanmxa/add-prometheus-mcp-server
Add Prometheus (TypeScript) MCP Server
2025-08-19 07:02:36 -07:00
Michael Casazza
46368832ef
Windows filesystem MCP enhancements (#543)
* fix: comprehensive Windows path handling improvements

- Add path-utils module for consistent path handling
- Handle Windows paths with spaces via proper quoting
- Support Unix-style Windows paths (/c/path)
- Support WSL paths (/mnt/c/path)
- Add comprehensive test coverage
- Fix path normalization for all path formats

Closes #447

* tested locally and working now

* Add filesystem path utils and tests

* Ensure Windows drive letters are capitalized in normalizePath

* adding test for gh pr comment

* pushing jest and windows testing config

* last commit? fixing comments on PR

* Fix bin and bump sdk

* Remove redundant commonjs version of path-utils and import from ts version

* Remove copying cjs file

* Remove copying run-server

* Remove complex args parsing and do other cleanup

* Add missing tools details to Readme

* Move utility functions from index to lib

* Add more tests and handle very small and very large files edge cases

* Finish refactoring and include original security fix comments

* On Windows, also check for drive root

* Check symlink support on restricted Windows environments

* Fix tests

* Bump SDK and package version

* Clean up

---------

Co-authored-by: olaservo <olahungerford@gmail.com>
Co-authored-by: adam jones <adamj+git@anthropic.com>
2025-08-18 18:23:40 +01:00
Tomas Pavlin
2f74ac5b86
Update README.md
Add Rohlik MCP
2025-08-18 17:14:08 +02:00
Kumbham Ajay Goud
cf9f66c14e feat: add MCP roots protocol support to everything server
- Add roots capability declaration with listChanged: true
- Implement roots/list_changed notification handler
- Add initialization handler to request initial roots from client
- Add new listRoots tool to demonstrate roots functionality
- Add comprehensive logging for roots protocol events
- Update README.md with roots documentation

Resolves #2552

The everything server now demonstrates all MCP features including the roots protocol.
This provides a complete reference implementation for client developers to test
their roots protocol implementation against, even though this server doesn't
access files directly.
2025-08-18 15:31:23 +05:30
Meng Yan
8b5cf4bcd7 Add Prometheus (TypeScript) MCP server 2025-08-18 14:37:34 +08:00
claude[bot]
3dd0db07fd docs(fetch): Add Windows PYTHONIOENCODING configuration
Add troubleshooting section for Windows users experiencing timeout issues.
Setting PYTHONIOENCODING=utf-8 fixes character encoding problems that
can cause the server to timeout on Windows systems.

Fixes #65

Co-authored-by: Ola Hungerford <olaservo@users.noreply.github.com>
2025-08-17 16:46:33 +00:00
claude[bot]
9d8c2dfcaf fix: Change memory server default filename from memory.json to memory.jsonl
The Memory MCP server uses JSONL format (JSON Lines) where each line
contains a separate JSON object, but was using a .json file extension.
This caused IDE lint errors and confusion since the file is not valid JSON.

Changes:
- Update default filename in index.ts from memory.json to memory.jsonl
- Update documentation references in README.md
- Maintain backward compatibility for existing MEMORY_FILE_PATH configs

Fixes #2361

Co-authored-by: Ola Hungerford <olaservo@users.noreply.github.com>
2025-08-17 16:28:38 +00:00
Pierluigi Viti
41640b04b8 feat: add commerce layer server 2025-07-15 12:37:23 +02:00
143 changed files with 19597 additions and 10639 deletions

6
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'

View file

@ -2,6 +2,12 @@
## Description
## Publishing Your Server
**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.
To 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/).
## Server Details
<!-- If modifying an existing server, provide details -->
- Server: <!-- e.g., filesystem, github -->

View file

@ -26,13 +26,13 @@ jobs:
actions: read
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 1
- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@beta
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
@ -42,10 +42,8 @@ jobs:
# Trigger when assigned to an issue
assignee_trigger: "claude"
# Allow Claude to run bash
# This should be safe given the repo is already public
allowed_tools: "Bash"
custom_instructions: |
If posting a comment to GitHub, give a concise summary of the comment at the top and put all the details in a <details> block.
claude_args: |
--mcp-config .mcp.json
--allowedTools "Bash,mcp__mcp-docs,WebFetch"
--append-system-prompt "If posting a comment to GitHub, give a concise summary of the comment at the top and put all the details in a <details> block. When working on MCP-related code or reviewing MCP-related changes, use the mcp-docs MCP server to look up the latest protocol documentation. For schema details, reference https://github.com/modelcontextprotocol/modelcontextprotocol/tree/main/schema which contains versioned schemas in JSON (schema.json) and TypeScript (schema.ts) formats."

View file

@ -2,11 +2,13 @@ name: Python
on:
push:
branches:
- main
pull_request:
release:
types: [published]
# Superseded runs on the same ref are cancelled (e.g. rapid amend-pushes),
# except on main, where every merge keeps its own CI run
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
detect-packages:
@ -14,7 +16,7 @@ jobs:
outputs:
packages: ${{ steps.find-packages.outputs.packages }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Find Python packages
id: find-packages
@ -31,13 +33,13 @@ jobs:
name: Test ${{ matrix.package }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v7
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v7
with:
python-version-file: "src/${{ matrix.package }}/.python-version"
@ -68,19 +70,19 @@ jobs:
name: Build ${{ matrix.package }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v3
uses: astral-sh/setup-uv@v7
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v7
with:
python-version-file: "src/${{ matrix.package }}/.python-version"
- name: Install dependencies
working-directory: src/${{ matrix.package }}
run: uv sync --frozen --all-extras --dev
run: uv sync --locked --all-extras --dev
- name: Run pyright
working-directory: src/${{ matrix.package }}
@ -91,31 +93,7 @@ jobs:
run: uv build
- name: Upload artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: dist-${{ matrix.package }}
path: src/${{ matrix.package }}/dist/
publish:
runs-on: ubuntu-latest
needs: [build, detect-packages]
if: github.event_name == 'release'
strategy:
matrix:
package: ${{ fromJson(needs.detect-packages.outputs.packages) }}
name: Publish ${{ matrix.package }}
environment: release
permissions:
id-token: write # Required for trusted publishing
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: dist-${{ matrix.package }}
path: dist/
- name: Publish package to PyPI
uses: pypa/gh-action-pypi-publish@release/v1

114
.github/workflows/readme-pr-check.yml vendored Normal file
View file

@ -0,0 +1,114 @@
name: README PR Check
on:
# pull_request_target, not pull_request: fork PRs get a read-only token under
# pull_request, so the label and comment calls fail with 403. This job only
# calls the API and never checks out PR code, so the write token is safe.
pull_request_target:
types: [opened]
paths:
- 'README.md'
issue_comment:
types: [created]
jobs:
check-readme-only:
if: github.event_name == 'pull_request_target'
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Check files and comment if README-only
uses: actions/github-script@v8
with:
script: |
const { owner, repo } = context.repo;
const prNumber = context.payload.pull_request.number;
const { data: files } = await github.rest.pulls.listFiles({ owner, repo, pull_number: prNumber });
if (files.length !== 1 || files[0].filename !== 'README.md') {
console.log('PR modifies files other than README, skipping');
return;
}
// Check if we've already commented
const { data: comments } = await github.rest.issues.listComments({ owner, repo, issue_number: prNumber });
if (comments.some(c => c.user.login === 'github-actions[bot]' && c.body.includes('no longer accepting PRs to add new servers'))) {
console.log('Already commented on this PR, skipping');
return;
}
await github.rest.issues.addLabels({ owner, repo, issue_number: prNumber, labels: ['readme: pending'] });
await github.rest.issues.createComment({
owner,
repo,
issue_number: prNumber,
body: [
'Thanks for your contribution!',
'',
'**We are no longer accepting PRs to add new servers to the README.** The third-party server list has been removed from this README in favor of the [MCP Server Registry](https://registry.modelcontextprotocol.io/).',
'',
'👉 **To add a new MCP server:** Please publish it to the [MCP Server Registry](https://github.com/modelcontextprotocol/registry) instead. You can browse published servers at [registry.modelcontextprotocol.io](https://registry.modelcontextprotocol.io/).',
'',
'👉 **If this PR updates or removes an existing entry:** We do still accept these changes. Please reply with `/i-promise-this-is-not-a-new-server` to continue.',
'',
'If this PR is adding a new server, please close it and submit to the registry instead.',
].join('\n'),
});
handle-confirmation:
if: github.event_name == 'issue_comment' && github.event.issue.pull_request && contains(github.event.comment.body, '/i-promise-this-is-not-a-new-server')
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Swap labels and minimize comments
uses: actions/github-script@v8
with:
script: |
const { owner, repo } = context.repo;
const prNumber = context.payload.issue.number;
// Check if pending label exists
const { data: labels } = await github.rest.issues.listLabelsOnIssue({ owner, repo, issue_number: prNumber });
if (!labels.some(l => l.name === 'readme: pending')) {
console.log('No pending label found, skipping');
return;
}
// Swap labels
try {
await github.rest.issues.removeLabel({ owner, repo, issue_number: prNumber, name: 'readme: pending' });
} catch (e) {}
await github.rest.issues.addLabels({ owner, repo, issue_number: prNumber, labels: ['readme: ready for review'] });
// Find the bot's original comment
const { data: comments } = await github.rest.issues.listComments({ owner, repo, issue_number: prNumber });
const botComment = comments.find(c =>
c.user.login === 'github-actions[bot]' &&
c.body.includes('no longer accepting PRs to add new servers')
);
// Minimize both comments via GraphQL
const minimizeComment = async (nodeId) => {
await github.graphql(`
mutation($id: ID!) {
minimizeComment(input: {subjectId: $id, classifier: RESOLVED}) {
minimizedComment { isMinimized }
}
}
`, { id: nodeId });
};
if (botComment) {
await minimizeComment(botComment.node_id);
}
// Only minimize user's comment if it's just the command
const userComment = context.payload.comment.body.trim();
if (userComment === '/i-promise-this-is-not-a-new-server') {
await minimizeComment(context.payload.comment.node_id);
}

View file

@ -1,20 +1,19 @@
name: Automatic Release Creation
name: Release
on:
workflow_dispatch:
schedule:
- cron: '0 10 * * *'
jobs:
create-metadata:
runs-on: ubuntu-latest
if: github.repository_owner == 'modelcontextprotocol'
outputs:
hash: ${{ steps.last-release.outputs.hash }}
version: ${{ steps.create-version.outputs.version}}
npm_packages: ${{ steps.create-npm-packages.outputs.npm_packages}}
pypi_packages: ${{ steps.create-pypi-packages.outputs.pypi_packages}}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
@ -26,7 +25,7 @@ jobs:
echo "Using last release hash: ${HASH}"
- name: Install uv
uses: astral-sh/setup-uv@v5
uses: astral-sh/setup-uv@v7
- name: Create version name
id: create-version
@ -42,7 +41,7 @@ jobs:
cat RELEASE_NOTES.md
- name: Release notes
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: release-notes
path: RELEASE_NOTES.md
@ -68,15 +67,17 @@ jobs:
if: ${{ needs.create-metadata.outputs.npm_packages != '[]' || needs.create-metadata.outputs.pypi_packages != '[]' }}
runs-on: ubuntu-latest
environment: release
permissions:
contents: write
outputs:
changes_made: ${{ steps.commit.outputs.changes_made }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install uv
uses: astral-sh/setup-uv@v5
uses: astral-sh/setup-uv@v7
- name: Update packages
run: |
@ -115,15 +116,15 @@ jobs:
id-token: write # Required for trusted publishing
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ needs.create-metadata.outputs.version }}
- name: Install uv
uses: astral-sh/setup-uv@v5
uses: astral-sh/setup-uv@v7
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v7
with:
python-version-file: "src/${{ matrix.package }}/.python-version"
@ -135,6 +136,15 @@ jobs:
working-directory: src/${{ matrix.package }}
run: uv run --frozen pyright
- name: Run tests
working-directory: src/${{ matrix.package }}
run: |
if [ -d "tests" ] || [ -d "test" ]; then
uv run --frozen pytest
else
echo "No tests directory, skipping"
fi
- name: Build package
working-directory: src/${{ matrix.package }}
run: uv build
@ -143,6 +153,7 @@ jobs:
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: src/${{ matrix.package }}/dist
skip-existing: true # re-runs tolerate already-uploaded files
publish-npm:
needs: [update-packages, create-metadata]
@ -153,18 +164,25 @@ jobs:
package: ${{ fromJson(needs.create-metadata.outputs.npm_packages) }}
name: Build ${{ matrix.package }}
environment: release
permissions:
contents: read
id-token: write # Required for npm trusted publishing (OIDC)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ needs.create-metadata.outputs.version }}
- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
registry-url: 'https://registry.npmjs.org'
# OIDC trusted publishing requires npm >=11.5.1; Node 22's bundled npm is 10.x.
- name: Ensure npm CLI supports OIDC trusted publishing
run: npm install -g npm@^11.5.1
- name: Install dependencies
working-directory: src/${{ matrix.package }}
run: npm ci
@ -179,29 +197,38 @@ jobs:
fi
echo "Version $VERSION is new, proceeding with publish"
- name: Run tests
working-directory: src/${{ matrix.package }}
run: npm test --if-present
- name: Build package
working-directory: src/${{ matrix.package }}
run: npm run build
# Authenticates via OIDC trusted publishing (no token) — each package's
# npm trusted publisher is bound to this workflow + the release environment
- name: Publish package
working-directory: src/${{ matrix.package }}
run: |
npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_CONFIG_PROVENANCE: "true"
create-release:
needs: [update-packages, create-metadata, publish-pypi, publish-npm]
if: needs.update-packages.outputs.changes_made == 'true'
if: |
always() &&
needs.update-packages.outputs.changes_made == 'true' &&
(needs.publish-pypi.result == 'success' || needs.publish-npm.result == 'success')
runs-on: ubuntu-latest
environment: release
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Download release notes
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: release-notes

View file

@ -2,11 +2,13 @@ name: TypeScript
on:
push:
branches:
- main
pull_request:
release:
types: [published]
# Superseded runs on the same ref are cancelled (e.g. rapid amend-pushes),
# except on main, where every merge keeps its own CI run
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
detect-packages:
@ -14,7 +16,7 @@ jobs:
outputs:
packages: ${{ steps.find-packages.outputs.packages }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Find JS packages
id: find-packages
working-directory: src
@ -30,9 +32,9 @@ jobs:
name: Test ${{ matrix.package }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
@ -41,21 +43,9 @@ jobs:
working-directory: src/${{ matrix.package }}
run: npm ci
- name: Check if tests exist
id: check-tests
working-directory: src/${{ matrix.package }}
run: |
if npm run test --silent 2>/dev/null; then
echo "has-tests=true" >> $GITHUB_OUTPUT
else
echo "has-tests=false" >> $GITHUB_OUTPUT
fi
continue-on-error: true
- name: Run tests
if: steps.check-tests.outputs.has-tests == 'true'
working-directory: src/${{ matrix.package }}
run: npm test
run: npm test --if-present
build:
needs: [detect-packages, test]
@ -65,9 +55,9 @@ jobs:
name: Build ${{ matrix.package }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
@ -80,35 +70,3 @@ jobs:
working-directory: src/${{ matrix.package }}
run: npm run build
publish:
runs-on: ubuntu-latest
needs: [build, detect-packages]
if: github.event_name == 'release'
environment: release
strategy:
matrix:
package: ${{ fromJson(needs.detect-packages.outputs.packages) }}
name: Publish ${{ matrix.package }}
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
registry-url: "https://registry.npmjs.org"
- name: Install dependencies
working-directory: src/${{ matrix.package }}
run: npm ci
- name: Publish package
working-directory: src/${{ matrix.package }}
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

5
.gitignore vendored
View file

@ -122,6 +122,10 @@ dist
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# IDEs
.idea/
.vscode/
# yarn v2
.yarn/cache
.yarn/unplugged
@ -298,3 +302,4 @@ cython_debug/
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
.claude/settings.local.json

8
.mcp.json Normal file
View file

@ -0,0 +1,8 @@
{
"mcpServers": {
"mcp-docs": {
"type": "http",
"url": "https://modelcontextprotocol.io/mcp"
}
}
}

View file

@ -1 +0,0 @@
{}

94
ADDITIONAL.md Normal file
View file

@ -0,0 +1,94 @@
# Additional links
This is a curated collection of community-built frameworks and resources that simplify building MCP servers and clients, along with other useful tools, libraries, and references for working with MCP.
## 📚 Frameworks
### For servers
* **[Anubis MCP](https://github.com/zoedsoupe/anubis-mcp)** (Elixir) - A high-performance and high-level Model Context Protocol (MCP) implementation in Elixir. Think like "Live View" for MCP.
* **[ModelFetch](https://github.com/phuctm97/modelfetch/)** (TypeScript) - Runtime-agnostic SDK to create and deploy MCP servers anywhere TypeScript/JavaScript runs
* **[EasyMCP](https://github.com/zcaceres/easy-mcp/)** (TypeScript)
* **[FastAPI to MCP auto generator](https://github.com/tadata-org/fastapi_mcp)** – A zero-configuration tool for automatically exposing FastAPI endpoints as MCP tools by **[Tadata](https://tadata.com/)**
* **[FastMCP](https://github.com/punkpeye/fastmcp)** (TypeScript)
* **[Foobara MCP Connector](https://github.com/foobara/mcp-connector)** - Easily expose Foobara commands written in Ruby as tools via MCP
* **[Foxy Contexts](https://github.com/strowk/foxy-contexts)** – A library to build MCP servers in Golang by **[strowk](https://github.com/strowk)**
* **[Higress MCP Server Hosting](https://github.com/alibaba/higress/tree/main/plugins/wasm-go/mcp-servers)** - A solution for hosting MCP Servers by extending the API Gateway (based on Envoy) with wasm plugins.
* **[MCP Declarative Java SDK](https://github.com/codeboyzhou/mcp-declarative-java-sdk)** Annotation-driven MCP servers development with Java, no Spring Framework Required, minimize dependencies as much as possible.
* **[MCP-Framework](https://mcp-framework.com)** Build MCP servers with elegance and speed in TypeScript. Comes with a CLI to create your project with `mcp create app`. Get started with your first server in under 5 minutes by **[Alex Andru](https://github.com/QuantGeekDev)**
* **[MCP Plexus](https://github.com/Super-I-Tech/mcp_plexus)**: A secure, **multi-tenant** and Multi-user MCP python server framework built to integrate easily with external services via OAuth 2.1, offering scalable and robust solutions for managing complex AI applications.
* **[mcp_sse (Elixir)](https://github.com/kEND/mcp_sse)** An SSE implementation in Elixir for rapidly creating MCP servers.
* **[mxcp](https://github.com/raw-labs/mxcp)** (Python) - Open-source framework for building enterprise-grade MCP servers using just YAML, SQL, and Python, with built-in auth, monitoring, ETL and policy enforcement.
* **[Next.js MCP Server Template](https://github.com/vercel-labs/mcp-for-next.js)** (Typescript) - A starter Next.js project that uses the MCP Adapter to allow MCP clients to connect and access resources.
* **[PayMCP](https://github.com/blustAI/paymcp)** (Python & TypeScript) - Lightweight payments layer for MCP servers: turn tools into paid endpoints with a two-line decorator. [PyPI](https://pypi.org/project/paymcp/) · [npm](https://www.npmjs.com/package/paymcp) · [TS repo](https://github.com/blustAI/paymcp-ts)
* **[Perl SDK](https://github.com/mojolicious/mojo-mcp)** - An SDK for building MCP servers and clients with the Perl programming language.
* **[Quarkus MCP Server SDK](https://github.com/quarkiverse/quarkus-mcp-server)** (Java)
- **[R mcptools](https://github.com/posit-dev/mcptools)** - An R SDK for creating R-based MCP servers and retrieving functionality from third-party MCP servers as R functions.
* **[SAP ABAP MCP Server SDK](https://github.com/abap-ai/mcp)** - Build SAP ABAP based MCP servers. ABAP 7.52 based with 7.02 downport; runs on R/3 & S/4HANA on-premises, currently not cloud-ready.
* **[Spring AI MCP Server](https://docs.spring.io/spring-ai/reference/api/mcp/mcp-server-boot-starter-docs.html)** - Provides auto-configuration for setting up an MCP server in Spring Boot applications.
* **[Template MCP Server](https://github.com/mcpdotdirect/template-mcp-server)** - A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
* **[AgentR Universal MCP SDK](https://github.com/universal-mcp/universal-mcp)** - A python SDK to build MCP Servers with inbuilt credential management by **[Agentr](https://agentr.dev/home)**
* **[Vercel MCP Adapter](https://github.com/vercel/mcp-adapter)** (TypeScript) - A simple package to start serving an MCP server on most major JS meta-frameworks including Next, Nuxt, Svelte, and more.
* **[PHP MCP Server](https://github.com/php-mcp/server)** (PHP) - Core PHP implementation for the Model Context Protocol (MCP) server
### For clients
* **[codemirror-mcp](https://github.com/marimo-team/codemirror-mcp)** - CodeMirror extension that implements the Model Context Protocol (MCP) for resource mentions and prompt commands
* **[llm-analysis-assistant](https://github.com/xuzexin-hz/llm-analysis-assistant)** <img height="12" width="12" src="https://raw.githubusercontent.com/xuzexin-hz/llm-analysis-assistant/refs/heads/main/src/llm_analysis_assistant/pages/html/imgs/favicon.ico" alt="Langfuse Logo" /> - A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also supports monitoring and simulation of ollama/openai interface.
* **[MCP-Agent](https://github.com/lastmile-ai/mcp-agent)** - A simple, composable framework to build agents using Model Context Protocol by **[LastMile AI](https://www.lastmileai.dev)**
* **[Spring AI MCP Client](https://docs.spring.io/spring-ai/reference/api/mcp/mcp-client-boot-starter-docs.html)** - Provides auto-configuration for MCP client functionality in Spring Boot applications.
* **[MCP CLI Client](https://github.com/vincent-pli/mcp-cli-host)** - A CLI host application that enables Large Language Models (LLMs) to interact with external tools through the Model Context Protocol (MCP).
* **[OpenMCP Client](https://github.com/LSTM-Kirigaya/openmcp-client/)** - An all-in-one vscode/trae/cursor plugin for MCP server debugging. [Document](https://kirigaya.cn/openmcp/) & [OpenMCP SDK](https://kirigaya.cn/openmcp/sdk-tutorial/).
* **[PHP MCP Client](https://github.com/php-mcp/client)** - Core PHP implementation for the Model Context Protocol (MCP) Client
* **[Runbear](https://runbear.io/solutions/integrations/slack/mcp)** - No-code MCP client for team chat platforms, such as Slack, Microsoft Teams, and Discord.
## 📚 Resources
- **[A2A-MCP Java Bridge](https://github.com/vishalmysore/a2ajava)** - A2AJava brings powerful A2A-MCP integration directly into your Java applications. It enables developers to annotate standard Java methods and instantly expose them as MCP Server, A2A-discoverable actions — with no boilerplate or service registration overhead.
- **[AiMCP](https://www.aimcp.info)** - A collection of MCP clients&servers to find the right mcp tools by **[Hekmon](https://github.com/hekmon8)**
- **[Awesome Crypto MCP Servers by badkk](https://github.com/badkk/awesome-crypto-mcp-servers)** - A curated list of MCP servers by **[Luke Fan](https://github.com/badkk)**
- **[Awesome MCP Servers by appcypher](https://github.com/appcypher/awesome-mcp-servers)** - A curated list of MCP servers by **[Stephen Akinyemi](https://github.com/appcypher)**
- **[Awesome MCP Servers by punkpeye](https://github.com/punkpeye/awesome-mcp-servers)** (**[website](https://glama.ai/mcp/servers)**) - A curated list of MCP servers by **[Frank Fiegel](https://github.com/punkpeye)**
- **[Awesome MCP Servers by wong2](https://github.com/wong2/awesome-mcp-servers)** (**[website](https://mcpservers.org)**) - A curated list of MCP servers by **[wong2](https://github.com/wong2)**
- **[Awesome Remote MCP Servers by JAW9C](https://github.com/jaw9c/awesome-remote-mcp-servers)** - A curated list of **remote** MCP servers, including their authentication support by **[JAW9C](https://github.com/jaw9c)**
- **[Discord Server](https://glama.ai/mcp/discord)** – A community discord server dedicated to MCP by **[Frank Fiegel](https://github.com/punkpeye)**
- **[Install This MCP](https://installthismcp.com)** - Reduce Installation Friction with beautiful installation guides
- **[Klavis AI](https://www.klavis.ai)** - Open Source MCP Infra. Hosted MCP servers and MCP clients on Slack and Discord.
- **[MCP Badges](https://github.com/mcpx-dev/mcp-badges)** – Quickly highlight your MCP project with clear, eye-catching badges, by **[Ironben](https://github.com/nanbingxyz)**
- **[MCPProxy](https://github.com/smart-mcp-proxy/mcpproxy-go)** - Open-source local app that enables access to multiple MCP servers and thousands of tools with intelligent discovery via MCP protocol, runs servers in isolated environments, and features automatic quarantine protection against malicious tools.
- **[MCPRepository.com](https://mcprepository.com/)** - A repository that indexes and organizes all MCP servers for easy discovery.
- **[mcp-cli](https://github.com/wong2/mcp-cli)** - A CLI inspector for the Model Context Protocol by **[wong2](https://github.com/wong2)**
- **[mcp-dockmaster](https://mcp-dockmaster.com)** - An Open-Sourced UI to install and manage MCP servers for Windows, Linux and macOS.
- **[mcp-get](https://mcp-get.com)** - Command line tool for installing and managing MCP servers by **[Michael Latman](https://github.com/michaellatman)**
- **[mcp-guardian](https://github.com/eqtylab/mcp-guardian)** - GUI application + tools for proxying / managing control of MCP servers by **[EQTY Lab](https://eqtylab.io)**
- **[MCP Linker](https://github.com/milisp/mcp-linker)** - A cross-platform Tauri GUI tool for one-click setup and management of MCP servers, supporting Claude Desktop, Cursor, Windsurf, VS Code, Cline, and Neovim.
- **[mcp-manager](https://github.com/zueai/mcp-manager)** - Simple Web UI to install and manage MCP servers for Claude Desktop by **[Zue](https://github.com/zueai)**
- **[MCP Marketplace Web Plugin](https://github.com/AI-Agent-Hub/mcp-marketplace)** MCP Marketplace is a small Web UX plugin to integrate with AI applications, Support various MCP Server API Endpoint (e.g pulsemcp.com/deepnlp.org and more). Allowing user to browse, paginate and select various MCP servers by different categories. [Pypi](https://pypi.org/project/mcp-marketplace) | [Maintainer](https://github.com/AI-Agent-Hub) | [Website](http://www.deepnlp.org/store/ai-agent/mcp-server)
- **[mcp.natoma.ai](https://mcp.natoma.ai)** – A Hosted MCP Platform to discover, install, manage and deploy MCP servers by **[Natoma Labs](https://www.natoma.ai)**
- **[mcp.run](https://mcp.run)** - A hosted registry and control plane to install & run secure + portable MCP Servers.
- **[MCPHub](https://www.mcphub.com)** - Website to list high quality MCP servers and reviews by real users. Also provide online chatbot for popular LLM models with MCP server support.
- **[MCP Router](https://mcp-router.net)** – Free Windows and macOS app that simplifies MCP management while providing seamless app authentication and powerful log visualization by **[MCP Router](https://github.com/mcp-router/mcp-router)**
- **[MCP Servers Hub](https://github.com/apappascs/mcp-servers-hub)** (**[website](https://mcp-servers-hub-website.pages.dev/)**) - A curated list of MCP servers by **[apappascs](https://github.com/apappascs)**
- **[MCPServers.com](https://mcpservers.com)** - A growing directory of high-quality MCP servers with clear setup guides for a variety of MCP clients. Built by the team behind the **[Highlight MCP client](https://highlightai.com/)**
- **[MCP Servers Rating and User Reviews](http://www.deepnlp.org/store/ai-agent/mcp-server)** - Website to rate MCP servers, write authentic user reviews, and [search engine for agent & mcp](http://www.deepnlp.org/search/agent)
- **[MCP Sky](https://bsky.app/profile/brianell.in/feed/mcp)** - Bluesky feed for MCP related news and discussion by **[@brianell.in](https://bsky.app/profile/brianell.in)**
- **[MCP X Community](https://x.com/i/communities/1861891349609603310)** – A X community for MCP by **[Xiaoyi](https://x.com/chxy)**
- **[MCPHub](https://github.com/Jeamee/MCPHub-Desktop)** – An Open Source macOS & Windows GUI Desktop app for discovering, installing and managing MCP servers by **[Jeamee](https://github.com/jeamee)**
- **[mcpm](https://github.com/pathintegral-institute/mcpm.sh)** ([website](https://mcpm.sh)) - MCP Manager (MCPM) is a Homebrew-like service for managing Model Context Protocol (MCP) servers across clients by **[Pathintegral](https://github.com/pathintegral-institute)**
- **[MCPVerse](https://mcpverse.dev)** - A portal for creating & hosting authenticated MCP servers and connecting to them securely.
- **[MCP Servers Search](https://github.com/atonomus/mcp-servers-search)** - An MCP server that provides tools for querying and discovering available MCP servers from this list.
- **[Search MCP Server](https://github.com/krzysztofkucmierz/search-mcp-server)** - Recommends the most relevant MCP servers based on the client's query by searching this README file.
- **[MCPWatch](https://github.com/kapilduraphe/mcp-watch)** - A comprehensive security scanner for Model Context Protocol (MCP) servers that detects vulnerabilities and security issues in your MCP server implementations.
- **[mkinf](https://mkinf.io)** - An Open Source registry of hosted MCP Servers to accelerate AI agent workflows.
- **[Open-Sourced MCP Servers Directory](https://github.com/chatmcp/mcp-directory)** - A curated list of MCP servers by **[mcpso](https://mcp.so)**
- **[OpenTools](https://opentools.com)** - An open registry for finding, installing, and building with MCP servers by **[opentoolsteam](https://github.com/opentoolsteam)**
- **[Programmatic MCP Prototype](https://github.com/domdomegg/programmatic-mcp-prototype)** - Experimental agent prototype demonstrating programmatic MCP tool composition, progressive tool discovery, state persistence, and skill building through TypeScript code execution by **[Adam Jones](https://github.com/domdomegg)**
- **[PulseMCP](https://www.pulsemcp.com)** ([API](https://www.pulsemcp.com/api)) - Community hub & weekly newsletter for discovering MCP servers, clients, articles, and news by **[Tadas Antanavicius](https://github.com/tadasant)**, **[Mike Coughlin](https://github.com/macoughl)**, and **[Ravina Patel](https://github.com/ravinahp)**
- **[r/mcp](https://www.reddit.com/r/mcp)** – A Reddit community dedicated to MCP by **[Frank Fiegel](https://github.com/punkpeye)**
- **[MCP.ing](https://mcp.ing/)** - A list of MCP services for discovering MCP servers in the community and providing a convenient search function for MCP services by **[iiiusky](https://github.com/iiiusky)**
- **[MCP Hunt](https://mcp-hunt.com)** - Realtime platform for discovering trending MCP servers with momentum tracking, upvoting, and community discussions - like Product Hunt meets Reddit for MCP
- **[Smithery](https://smithery.ai/)** - A registry of MCP servers to find the right tools for your LLM agents by **[Henry Mao](https://github.com/calclavia)**
- **[Toolbase](https://gettoolbase.ai)** - Desktop application that manages tools and MCP servers with just a few clicks - no coding required by **[gching](https://github.com/gching)**
- **[ToolHive](https://github.com/StacklokLabs/toolhive)** - A lightweight utility designed to simplify the deployment and management of MCP servers, ensuring ease of use, consistency, and security through containerization by **[StacklokLabs](https://github.com/StacklokLabs)**
- **[NetMind](https://www.netmind.ai/AIServices)** - Access powerful AI services via simple APIs or MCP servers to supercharge your productivity.
- **[Webrix MCP Gateway](https://github.com/webrix-ai/secure-mcp-gateway)** - Enterprise MCP gateway with SSO, RBAC, audit trails, and token vaults for secure, centralized AI agent access control. Deploy via Helm charts on-premise or in your cloud. [webrix.ai](https://webrix.ai)

104
CLAUDE.md Normal file
View file

@ -0,0 +1,104 @@
# CLAUDE.md
This file provides guidance to Claude Code when working with code in this repository.
## Project Overview
Official MCP reference server implementations. This is an npm workspaces monorepo containing 7 servers (4 TypeScript, 3 Python) under `src/`. Each server is a standalone package published to npm or PyPI.
## Monorepo Structure
```
src/
everything/ TS @modelcontextprotocol/server-everything (reference server, all MCP features)
filesystem/ TS @modelcontextprotocol/server-filesystem (file operations with Roots access control)
memory/ TS @modelcontextprotocol/server-memory (knowledge graph persistence)
sequentialthinking/ TS @modelcontextprotocol/server-sequential-thinking (step-by-step reasoning)
fetch/ Py mcp-server-fetch (web content fetching)
git/ Py mcp-server-git (git repository operations)
time/ Py mcp-server-time (timezone queries and conversion)
```
## Build & Test Commands
### TypeScript servers
```bash
# Single server
cd src/<server> && npm ci && npm run build && npm test
# All TS servers from root
npm install && npm run build
```
- Build: `tsc` (target ES2022, module Node16, strict mode)
- Tests: **vitest** with `@vitest/coverage-v8` (required for new tests)
- Node version: **22**
### Python servers
```bash
cd src/<server> && uv sync --frozen --all-extras --dev
# Run tests (if tests/ or test/ directory exists)
uv run pytest
# Type checking
uv run pyright
# Linting
uv run ruff check .
```
- Build system: **hatchling** (`uv build`)
- Package manager: **uv** (not pip)
- Python version: **>= 3.10** (per-server `.python-version` file)
- Type checking: **pyright** (enforced in CI)
- Linting: **ruff**
## Code Style
### TypeScript
- ES modules with `.js` extension in import paths
- Strict TypeScript typing for all functions and variables
- Zod schemas for tool input validation
- 2-space indentation, trailing commas in multi-line objects
- camelCase for variables/functions, PascalCase for types/classes, UPPER_CASE for constants
- kebab-case for file names and registered tools/prompts/resources
- Verb-first tool names (e.g., `get-file-info`, not `file-info`)
- Imports grouped: external first, then internal
### Python
- Type hints enforced via pyright
- Async/await patterns (especially in fetch server with pytest-asyncio)
- Follow existing module layout per server
## Contributing Guidelines
**Accepted:** Bug fixes, usability improvements, enhancements demonstrating MCP protocol features (Resources, Prompts, Roots -- not just Tools).
**Selective:** New features outside a server's core purpose or highly opinionated additions.
**Not accepted:** New server implementations (use the [MCP Server Registry](https://github.com/modelcontextprotocol/registry)), README server listing changes.
## CI/CD Pipeline
Both TypeScript and Python workflows use **dynamic package detection** (find + jq matrix strategy):
1. `detect-packages` -- finds all `package.json` / `pyproject.toml` under `src/`
2. `test` -- runs tests per package
3. `build` -- compiles and type-checks per package
4. `publish` -- on release events only (npm for TS, PyPI trusted publishing for Python)
## MCP Protocol Reference
The repo is configured with an MCP docs server (`.mcp.json`) pointing to `https://modelcontextprotocol.io/mcp`. For schema details, reference `https://github.com/modelcontextprotocol/modelcontextprotocol/tree/main/schema` which contains versioned schemas in JSON and TypeScript formats.
## Key Patterns
- Each server registers capabilities via `registerTools(server)`, `registerResources(server)`, `registerPrompts(server)` functions
- Tool annotations: set `readOnlyHint`, `idempotentHint`, `destructiveHint` per MCP spec
- Transport support: stdio (default), SSE (deprecated), Streamable HTTP
- All PRs are reviewed against the [PR template](.github/pull_request_template.md) checklist -- ensure MCP docs are read, security best practices followed, and changes tested with an LLM client

View file

@ -1,105 +1,40 @@
# Contributing to MCP Servers
Thank you for your interest in contributing to the Model Context Protocol (MCP) servers! This document provides guidelines and instructions for contributing.
Thanks for your interest in contributing! Here's how you can help make this repo better.
## Types of Contributions
We accept changes through [the standard GitHub flow model](https://docs.github.com/en/get-started/using-github/github-flow).
### 1. New Servers
## Server Listings
The repository contains reference implementations, as well as a list of community servers.
We generally don't accept new servers into the repository. We do accept pull requests to the [README.md](./README.md)
adding a reference to your servers.
The README no longer contains a list of third-party MCP servers — that list has been retired in favor of the [MCP Server Registry](https://github.com/modelcontextprotocol/registry). To make your server discoverable, follow the [quickstart guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx) to publish it there.
Please keep lists in alphabetical order to minimize merge conflicts when adding new items.
You can browse published servers at [https://registry.modelcontextprotocol.io/](https://registry.modelcontextprotocol.io/).
- Check the [modelcontextprotocol.io](https://modelcontextprotocol.io) documentation
- Ensure your server doesn't duplicate existing functionality
- Consider whether your server would be generally useful to others
- Follow [security best practices](https://modelcontextprotocol.io/docs/concepts/transports#security-considerations) from the MCP documentation
- Create a PR adding a link to your server to the [README.md](./README.md).
## Server Implementations
### 2. Improvements to Existing Servers
Enhancements to existing servers are welcome! This includes:
We welcome:
- **Bug fixes** — Help us squash those pesky bugs.
- **Usability improvements** — Making servers easier to use for humans and agents.
- **Enhancements that demonstrate MCP protocol features** — We encourage contributions that help reference servers better illustrate underutilized aspects of the MCP protocol beyond just Tools, such as Resources, Prompts, or Roots. For example, adding Roots support to filesystem-server helps showcase this important but lesser-known feature.
- Bug fixes
- Performance improvements
- New features
- Security enhancements
We're more selective about:
- **Other new features** — Especially if they're not crucial to the server's core purpose or are highly opinionated. The existing servers are reference servers meant to inspire the community. If you need specific features, we encourage you to build enhanced versions and publish them to the [MCP Server Registry](https://github.com/modelcontextprotocol/registry)! We think a diverse ecosystem of servers is beneficial for everyone.
### 3. Documentation
Documentation improvements are always welcome:
We don't accept:
- **New server implementations** — We encourage you to publish them to the [MCP Server Registry](https://github.com/modelcontextprotocol/registry) instead.
- Fixing typos or unclear instructions
- Adding examples
- Improving setup instructions
- Adding troubleshooting guides
## Testing
## Getting Started
When adding or configuring tests for servers implemented in TypeScript, use **vitest** as the test framework. Vitest provides better ESM support, faster test execution, and a more modern testing experience.
1. Fork the repository
2. Clone your fork:
```bash
git clone https://github.com/your-username/servers.git
```
3. Add the upstream remote:
```bash
git remote add upstream https://github.com/modelcontextprotocol/servers.git
```
4. Create a branch:
```bash
git checkout -b my-feature
```
## Documentation
## Development Guidelines
Improvements to existing documentation is welcome - although generally we'd prefer ergonomic improvements than documenting pain points if possible!
### Code Style
- Follow the existing code style in the repository
- Include appropriate type definitions
- Add comments for complex logic
### Documentation
- Include a detailed README.md in your server directory
- Document all configuration options
- Provide setup instructions
- Include usage examples
### Security
- Follow security best practices
- Implement proper input validation
- Handle errors appropriately
- Document security considerations
## Submitting Changes
1. Commit your changes:
```bash
git add .
git commit -m "Description of changes"
```
2. Push to your fork:
```bash
git push origin my-feature
```
3. Create a Pull Request through GitHub
### Pull Request Guidelines
- Thoroughly test your changes
- Fill out the pull request template completely
- Link any related issues
- Provide clear description of changes
- Include any necessary documentation updates
- Add screenshots for UI changes
- List any breaking changes
We're more selective about adding wholly new documentation, especially in ways that aren't vendor neutral (e.g. how to run a particular server with a particular client).
## Community
- Participate in [GitHub Discussions](https://github.com/orgs/modelcontextprotocol/discussions)
- Follow the [Code of Conduct](CODE_OF_CONDUCT.md)
[Learn how the MCP community communicates](https://modelcontextprotocol.io/community/communication).
## Questions?
- Check the [documentation](https://modelcontextprotocol.io)
- Ask in GitHub Discussions
Thank you for contributing to MCP Servers!
Thank you for helping make MCP servers better for everyone!

197
LICENSE
View file

@ -1,6 +1,193 @@
The MCP project is undergoing a licensing transition from the MIT License to the Apache License, Version 2.0 ("Apache-2.0"). All new code and specification contributions to the project are licensed under Apache-2.0. Documentation contributions (excluding specifications) are licensed under CC-BY-4.0.
Contributions for which relicensing consent has been obtained are licensed under Apache-2.0. Contributions made by authors who originally licensed their work under the MIT License and who have not yet granted explicit permission to relicense remain licensed under the MIT License.
No rights beyond those granted by the applicable original license are conveyed for such contributions.
---
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to the Licensor for inclusion in the Work by the copyright
owner or by an individual or Legal Entity authorized to submit on behalf
of the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
---
MIT License
Copyright (c) 2025 Anthropic, PBC
Copyright (c) 2024-2025 Model Context Protocol a Series of LF Projects, LLC.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -19,3 +206,11 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---
Creative Commons Attribution 4.0 International (CC-BY-4.0)
Documentation in this project (excluding specifications) is licensed under
CC-BY-4.0. See https://creativecommons.org/licenses/by/4.0/legalcode for
the full license text.

1275
README.md

File diff suppressed because it is too large Load diff

49
RELEASING.md Normal file
View file

@ -0,0 +1,49 @@
# Releasing
How the packages in this repository are published, and what to do when a publish fails.
## How publishing works
All packages publish exclusively from the [`release.yml`](.github/workflows/release.yml) GitHub Actions workflow, gated by the `release` environment (a required reviewer must approve each deployment). Releases are triggered deliberately by a maintainer via **workflow_dispatch** (Actions → Release → Run workflow, or `gh workflow run release.yml`) — there is no scheduled/automatic release.
**Authentication is OIDC trusted publishing on both registries — there are no registry tokens.**
- **npm** (TypeScript servers): each `@modelcontextprotocol/*` package is registered on npmjs.com with a [trusted publisher](https://docs.npmjs.com/trusted-publishers) bound to this repository, workflow filename `release.yml`, and environment `release` (the binding is case-sensitive). Packages publish with [provenance attestations](https://docs.npmjs.com/generating-provenance-statements).
- **PyPI** (Python servers): published via [PyPI trusted publishing](https://docs.pypi.org/trusted-publishers/) using `pypa/gh-action-pypi-publish`.
A release run:
1. **Detects changed packages** since the last release tag — a package counts as changed if any `.py`, `.ts`, or `.md` file in its directory changed (READMEs ship inside the published artifacts).
2. **Stamps versions and pushes the release tag** — versions are date-based (CalVer, e.g. `2026.7.4`).
3. **Publishes each changed package as an independent matrix job** (`fail-fast: false` — one package's failure never blocks another). Each job: checkout at the release tag → install → double-publish guard → **run the package's tests** (plus `pyright` for Python) → build → publish. The guard differs by registry: the npm job aborts before tests if the version already exists; for PyPI the skip happens at the publish step itself (`skip-existing` on the upload action).
4. **Creates the GitHub release** with generated notes.
## When a publish fails
A failed matrix leg means that one package didn't publish; everything that succeeded stays published.
**Preferred: re-run the failed jobs on the same run.**
```bash
gh run rerun <run-id> --failed --repo modelcontextprotocol/servers
```
- A re-run is still a `release.yml` run in the `release` environment, so it satisfies the trusted-publisher binding.
- It re-runs only the failed legs, checked out at the original release tag — it publishes exactly the tagged code, and the double-publish guard keeps already-published packages safe.
- It needs a fresh `release` environment approval, and the run must be complete first (approve or reject any pending deployments).
- GitHub's re-run window is ~30 days from the original run, and re-runs execute the *original* workflow snapshot — workflow fixes on `main` don't apply to a re-run.
**Otherwise: let the next release pick it up.** If the re-run window has closed (or the fix required a workflow change), the failed version simply never exists on that registry — that's benign; npm and PyPI version histories don't need to match. The package publishes at the next version, provided it has a qualifying change (`.py`, `.ts`, or `.md`) since the last release tag.
**Never:**
- Publish manually with an npm token or from a laptop — there are no registry tokens, and manual publishes would break the provenance/trust chain.
- Dispatch a fresh `release.yml` run expecting it to retry a failed version — versions are date-granular, so a same-day dispatch collides with the existing tag, and a later dispatch mints a *new* version. Neither retries the failed one.
## Environment approvals
The `release` environment's required-reviewer list is configured in the repository settings (Settings → Environments → `release`). Reviewer rights come only from that list — repository admin does not confer deployment approval.
---
Planned changes to this process — semver via changesets for the TypeScript packages, publishing triggered by manually-created GitHub Releases — are tracked in [#4463](https://github.com/modelcontextprotocol/servers/issues/4463). This document will be updated when that work merges.

View file

@ -1,10 +1,21 @@
# Security Policy
Thank you for helping us keep our MCP servers secure.
The **reference servers** in this repo are maintained by [Anthropic](https://www.anthropic.com/) as part of the Model Context Protocol project.
Thank you for helping keep the Model Context Protocol and its ecosystem secure.
The security of our systems and user data is Anthropic’s top priority. We appreciate the work of security researchers acting in good faith in identifying and reporting potential vulnerabilities.
## Important Notice
## Vulnerability Disclosure Program
The servers in this repository are **reference implementations** intended to demonstrate
MCP features and SDK usage. They serve as educational examples for developers building
their own MCP servers, not as production-ready solutions.
Our Vulnerability Program guidelines are defined on our [HackerOne program page](https://hackerone.com/anthropic-vdp). We ask that any validated vulnerability in this functionality be reported through the [submission form](https://hackerone.com/anthropic-vdp/reports/new?type=team&report_type=vulnerability).
This repository is **not** eligible for security vulnerability reporting. If you discover
a vulnerability in an MCP SDK, please report it in the appropriate SDK repository.
## Reporting Security Issues in MCP SDKs
If you discover a security vulnerability in an MCP SDK, please report it through the
[GitHub Security Advisory process](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability)
in the relevant SDK repository.
Please **do not** report security vulnerabilities through public GitHub issues, discussions,
or pull requests.

7461
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -3,8 +3,8 @@
"private": true,
"version": "0.6.2",
"description": "Model Context Protocol servers",
"license": "MIT",
"author": "Anthropic, PBC (https://anthropic.com)",
"license": "SEE LICENSE IN LICENSE",
"author": "Model Context Protocol a Series of LF Projects, LLC.",
"homepage": "https://modelcontextprotocol.io",
"bugs": "https://github.com/modelcontextprotocol/servers/issues",
"type": "module",
@ -23,5 +23,9 @@
"@modelcontextprotocol/server-memory": "*",
"@modelcontextprotocol/server-filesystem": "*",
"@modelcontextprotocol/server-sequential-thinking": "*"
},
"overrides": {
"qs": ">=6.15.2",
"hono": ">=4.12.21"
}
}

View file

@ -97,6 +97,9 @@ class PyPiPackage:
with open(self.path / "pyproject.toml", "w") as f:
f.write(tomlkit.dumps(data))
# Regenerate uv.lock to match the updated pyproject.toml
subprocess.run(["uv", "lock"], cwd=self.path, check=True)
def has_changes(path: Path, git_hash: GitHash) -> bool:
"""Check if any files changed between current state and git hash"""
@ -110,7 +113,9 @@ def has_changes(path: Path, git_hash: GitHash) -> bool:
)
changed_files = [Path(f) for f in output.stdout.splitlines()]
relevant_files = [f for f in changed_files if f.suffix in [".py", ".ts"]]
# .md counts as a change: READMEs ship inside the published package
# (npm tarball / PyPI long_description)
relevant_files = [f for f in changed_files if f.suffix in [".py", ".ts", ".md"]]
return len(relevant_files) >= 1
except subprocess.CalledProcessError:
return False

Some files were not shown because too many files have changed in this diff Show more