MCP servers

A connector is executable access to something you own, so every record here states what it exposes as plainly as what it enables. All six are Anthropic's reference implementations, which their own README says are for demonstrating MCP rather than production deployment.

These records describe what providers officially document. benchr has not run these capabilities itself, so nothing here is a test result. Each record shows the vendor page it was read from and the date.

Ledger updated: September 3, 2026

Filesystem

Node.js

AnthropicMITDocs checked September 3, 2026

Read, write, move and search files under directories you explicitly allow.

Why this comes up: It is the difference between pasting a file into a chat and letting an agent work through a project. Everything else in an agent workflow tends to start here.

npx -y @modelcontextprotocol/server-filesystem /path/to/dir1 /path/to/dir2
docker run -i --rm --mount type=bind,src=/path/to/dir,dst=/projects/dir mcp/filesystem /projects

What it makes possible

  • An agent reads and edits real files instead of a pasted excerpt.
  • Directory trees come back as JSON, so an agent can reason about structure before touching anything.
  • Pattern-based edits through edit_file rather than rewriting whole files.

Requirements

  • Node.js, and at least one allowed directory - the server refuses to start without one.
  • Access is scoped by command-line arguments, or dynamically through the MCP Roots protocol, which the README recommends because it updates without a restart.

What it puts at risk

  • This is write access to your filesystem. Scope it to a project directory, never a home directory.
  • write_file overwrites existing files, and edit_file is documented as not idempotent - run it twice and you may not get the same result.
  • All tools set openWorldHint: false, meaning they touch the local filesystem only.
  • A reference implementation by the maintainer's own description, not a hardened production server.

Git

Python

AnthropicMITDocs checked September 3, 2026

Read, search and manipulate a Git repository: status, staging, commits, branches, diffs and logs.

Why this comes up: History is context. An agent that can read a diff and a log understands why code looks the way it does, not just what it says now.

uvx mcp-server-git --repository path/to/git/repo
pip install mcp-server-git && python -m mcp_server_git

What it makes possible

  • An agent stages and commits its own work instead of handing back a patch to apply.
  • Diffs and logs as first-class inputs, so a review can cite the commit that introduced a problem.
  • Branch handling, which is what makes unattended work reviewable rather than destructive.

Requirements

  • Python with uvx or pip, and a repository path.
  • MCP Python SDK 1.x - the README states SDK 2.0 renamed APIs and the migration is ongoing.

What it puts at risk

  • Commit and branch access to a real repository. Point it at a working copy, not a shared checkout.
  • The README describes the server as in early development, with tools subject to change.
  • A reference implementation, not a hardened production server.

Fetch

Python

AnthropicMITDocs checked September 3, 2026

Retrieve a web page and convert it to markdown, with length and offset controls for paging through long documents.

Why this comes up: The cheapest way to give a model a specific page you already trust, without a browser or a search bill.

uvx mcp-server-fetch
python -m mcp_server_fetch

What it makes possible

  • A named URL becomes readable context, converted to markdown rather than raw HTML.
  • max_length and start_index let a long page be read in pieces instead of blowing the context window.
  • A raw mode when the markdown conversion loses something that matters.

Requirements

  • Python with uvx or pip.
  • Nothing else - this is the smallest useful server in the set.

What it puts at risk

  • The README states plainly that this server can access local and internal IP addresses and may represent a security risk. On a machine with internal services, that is the whole warning.
  • robots.txt is respected for model-initiated requests and ignored for user-initiated ones, and --ignore-robots-txt disables the check entirely. Know which mode you are in before pointing it at someone else's site.
  • A reference implementation, not a hardened production server.

Memory (knowledge graph)

Node.js

AnthropicMITDocs checked September 3, 2026

A local knowledge graph of entities, relations and observations that survives between conversations.

Why this comes up: Every session otherwise starts from zero. This is the difference between a tool you re-explain each morning and one that already knows the project.

npx -y @modelcontextprotocol/server-memory
cmd /c npx -y @modelcontextprotocol/server-memory   (Windows)

What it makes possible

  • Facts about a person, project or system persist across sessions instead of being re-pasted.
  • Relations, not just notes - the graph can answer who owns what, and what depends on what.
  • Search and targeted reads, so recall does not mean loading everything.

Requirements

  • Node.js. Data lands in a JSONL file, memory.jsonl by default, relocatable with MEMORY_FILE_PATH.
  • Nothing hosted: the graph is a file on your machine.

What it puts at risk

  • Whatever you tell it persists in plain JSONL on disk. Treat that file the way you would treat notes about the same people.
  • Documented behavior: duplicate relations are skipped, and operations fail if a referenced entity does not exist.
  • A reference implementation, not a hardened production server.

Sequential Thinking

Node.js

AnthropicMITDocs checked September 3, 2026

A structured thinking tool: numbered thoughts that can be revised or branched rather than written once and defended.

Why this comes up: Long problems fail when an early wrong turn never gets revisited. This makes revision an explicit move instead of something a model has to be talked into.

npx -y @modelcontextprotocol/server-sequential-thinking

What it makes possible

  • Numbered reasoning steps with an explicit totalThoughts, so a plan has a shape before it has an answer.
  • isRevision and revisesThought let a later step correct an earlier one on the record.
  • branchFromThought and branchId allow two approaches to be carried in parallel.

Requirements

  • Node.js.
  • Nothing else - it stores no data and touches nothing outside the conversation.

What it puts at risk

  • The lowest-risk server in this set: no filesystem, no network, no persistence.
  • The README does not state when the tool is counterproductive; on simple lookups the structure is overhead rather than help, and benchr has not tested where that line sits.
  • A reference implementation, not a hardened production server.

Time

Python

AnthropicMITDocs checked September 3, 2026

Current time in a named IANA timezone, and conversion between two of them.

Why this comes up: Models do not know what time it is. Anything scheduled, dated or deadline-shaped needs this before it needs anything clever.

uvx mcp-server-time
uvx mcp-server-time --local-timezone Asia/Riyadh

What it makes possible

  • get_current_time in a specific timezone rather than an assumed one.
  • convert_time between two zones, which is where scheduling across regions usually breaks.
  • A correct 'today' for any agent writing dated records.

Requirements

  • Python with uvx. The system timezone is detected automatically and can be overridden with --local-timezone.
  • MCP Python SDK 1.x (mcp>=1.29.0,<2) - the README notes a 2.0 port is in progress.

What it puts at risk

  • No filesystem, no network beyond the local clock, nothing persisted.
  • The only real risk is an unnoticed wrong --local-timezone silently dating everything incorrectly.
  • A reference implementation, not a hardened production server.