Este artículo está publicado en inglés.
Practical notes: I Tested 8 MCP Servers With Claude Code. These Were Actually
Operable walkthrough of Practical notes: I Tested 8 MCP Servers With Claude Code. These Were Actually: contracts, checks, and drop-in code slots for teams shipping this pattern.
This walkthrough rebuilds the path from raw materials to a working system for: I Tested 8 MCP Servers With Claude Code. These Were Actually Worth Keeping. The focus is operable steps, explicit checks, and code that you can drop into a repo without guessing intent. For the Overview stage, define the inputs, the owner of the step, and the exit criteria before changing code. Operators should be able to re-run the step from a known checkpoint without guessing hidden state. Keep configuration outside application code. Environment files, secret stores, and feature flags belong in one place operators can audit without reading the whole graph.
Context7 For Live Documentation
When working through the Context7 For Live Documentation stage, write down the contract first: required inputs, success signal, and what happens on partial failure. That checklist keeps later code changes honest. Document the happy path and the recovery path together. Retries, human gates, and dead-letter handling are part of the product, not later polish. Log tool name, args hash, latency, and outcome for every call. Debugging agent loops without that trail wastes hours.
# Add --scope project (or -s project) to write the entry into
# a committable .mcp.json instead of your personal ~/.claude.json.
# Context7 provides current, version-pinned library docs
# Canonical path is the installer (OAuth + generates an API key):
npx ctx7 setup
# Or wire the remote server manually (key from context7.com/dashboard):
claude mcp add --transport http context7 https://mcp.context7.com/mcp \
--header "CONTEXT7_API_KEY: <YOUR_KEY>"
GitHub MCP For Source Control Context
When working through the GitHub MCP For Source stage, write down the contract first: required inputs, success signal, and what happens on partial failure. That checklist keeps later code changes honest. Prefer small, testable units over sprawling scripts. When a step fails, the failure should point at a single responsibility rather than a tangled pipeline. Log tool name, args hash, latency, and outcome for every call. Debugging agent loops without that trail wastes hours.
# GitHub — OFFICIAL server (issues, PRs, repo search).
# For Claude Code 2.1.1+:
claude mcp add-json github '{"type":"http","url":"https://api.githubcopilot.com/mcp","headers":{"Authorization":"Bearer <YOUR_GITHUB_PAT>"}}'
# For Claude Code 2.1.0 or earlier (legacy flag form):
# claude mcp add --transport http github https://api.githubcopilot.com/mcp -H "Authorization: Bearer <YOUR_GITHUB_PAT>"
Postgres MCP Pro For Schema Awareness
When working through the Postgres MCP Pro For stage, write down the contract first: required inputs, success signal, and what happens on partial failure. That checklist keeps later code changes honest. Treat this stage as a contract between inputs and validated outputs. Name the artifacts, define success checks, and refuse silent partial completion. Log tool name, args hash, latency, and outcome for every call. Debugging agent loops without that trail wastes hours. When working through the Postgres MCP Pro For stage, write down the contract first: required inputs, success signal, and what happens on partial failure. That checklist keeps later code changes honest. Keep configuration outside application code. Environment files, secret stores, and feature flags belong in one place operators can audit without reading the whole graph.
# Postgres MCP Pro — schema-aware SQL, READ-ONLY restricted mode
pipx install postgres-mcp
# Add the server with the restricted access flag
claude mcp add postgres --env DATABASE_URI="postgresql://user:pass@localhost:5432/db" \
-- postgres-mcp --access-mode=restricted
Playwright MCP For Visual Verification
The Playwright MCP For Visual stage works best when treated as a measurable surface. Capture one golden transcript, one failure case, and the rollback note before expanding scope. Document the happy path and the recovery path together. Retries, human gates, and dead-letter handling are part of the product, not later polish. Expose tools with narrow schemas and explicit side-effect labels. Hosts need to know which calls mutate state before they auto-approve.
# Playwright (Microsoft) — agent drives a real browser to verify its own change
claude mcp add playwright npx @playwright/mcp@latest
Sentry MCP For Production Debugging
The Sentry MCP For Production stage works best when treated as a measurable surface. Capture one golden transcript, one failure case, and the rollback note before expanding scope. Prefer small, testable units over sprawling scripts. When a step fails, the failure should point at a single responsibility rather than a tangled pipeline. Expose tools with narrow schemas and explicit side-effect labels. Hosts need to know which calls mutate state before they auto-approve.
# Sentry — OFFICIAL remote server; pulls live stack traces
# Triggers OAuth on first launch
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
Brave Search For External Context
The Brave Search For External stage works best when treated as a measurable surface. Capture one golden transcript, one failure case, and the rollback note before expanding scope. Treat this stage as a contract between inputs and validated outputs. Name the artifacts, define success checks, and refuse silent partial completion. Expose tools with narrow schemas and explicit side-effect labels. Hosts need to know which calls mutate state before they auto-approve. The Brave Search For External stage works best when treated as a measurable surface. Capture one golden transcript, one failure case, and the rollback note before expanding scope. Keep configuration outside application code. Environment files, secret stores, and feature flags belong in one place operators can audit without reading the whole graph.
# Brave Search — OFFICIAL server from Brave (the @modelcontextprotocol/*
# package was archived May 2025)
# Requires a free API key from api-dashboard.search.brave.com
claude mcp add brave-search --env BRAVE_API_KEY="<YOUR_KEY>" \
-- npx -y @brave/brave-search-mcp-server --transport stdio
Auditing The Tool Budget & Starter Configuration
For the Auditing The Tool Budget stage, define the inputs, the owner of the step, and the exit criteria before changing code. Operators should be able to re-run the step from a known checkpoint without guessing hidden state. Document the happy path and the recovery path together. Retries, human gates, and dead-letter handling are part of the product, not later polish. Authenticate at the gateway and re-authorize at the data plane. A bearer token alone is not a tenancy boundary.
{
"mcpServers": {
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp",
"headers": { "CONTEXT7_API_KEY": "${CONTEXT7_API_KEY}" }
},
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp",
"headers": { "Authorization": "Bearer ${GITHUB_PAT}" }
},
"sentry": {
"type": "http",
"url": "https://mcp.sentry.dev/mcp"
},
"postgres": {
"command": "postgres-mcp",
"args": ["--access-mode=restricted"],
"env": { "DATABASE_URI": "${DATABASE_URI}" }
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
},
"brave-search": {
"command": "npx",
"args": ["-y", "@brave/brave-search-mcp-server", "--transport", "stdio"],
"env": { "BRAVE_API_KEY": "${BRAVE_API_KEY}" }
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "${HOME}/projects"]
},
"sequential-thinking": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
}
}
}
# List every configured server and its connection status
claude mcp list
# Inside a Claude Code session, inspect connected servers and their tools:
# Type /mcp
# This shows each server, its tool count, and lets you toggle tools.
The Cut List
For the The Cut List stage, define the inputs, the owner of the step, and the exit criteria before changing code. Operators should be able to re-run the step from a known checkpoint without guessing hidden state. Prefer small, testable units over sprawling scripts. When a step fails, the failure should point at a single responsibility rather than a tangled pipeline. Authenticate at the gateway and re-authorize at the data plane. A bearer token alone is not a tenancy boundary.
the Current Setup
For the the Current Setup stage, define the inputs, the owner of the step, and the exit criteria before changing code. Operators should be able to re-run the step from a known checkpoint without guessing hidden state. Treat this stage as a contract between inputs and validated outputs. Name the artifacts, define success checks, and refuse silent partial completion. Authenticate at the gateway and re-authorize at the data plane. A bearer token alone is not a tenancy boundary. For the the Current Setup stage, define the inputs, the owner of the step, and the exit criteria before changing code. Operators should be able to re-run the step from a known checkpoint without guessing hidden state. Keep configuration outside application code. Environment files, secret stores, and feature flags belong in one place operators can audit without reading the whole graph.
Continue Reading
When working through the Continue Reading stage, write down the contract first: required inputs, success signal, and what happens on partial failure. That checklist keeps later code changes honest. Document the happy path and the recovery path together. Retries, human gates, and dead-letter handling are part of the product, not later polish. Log tool name, args hash, latency, and outcome for every call. Debugging agent loops without that trail wastes hours.
Operational checklist
The Operational checklist stage works best when treated as a measurable surface. Capture one golden transcript, one failure case, and the rollback note before expanding scope.
Record timings and token or query cost next to functional results. Cost visibility early prevents surprise bills when the path moves from demo to shared environments.
Expose tools with narrow schemas and explicit side-effect labels. Hosts need to know which calls mutate state before they auto-approve.
Add a smoke test that exercises the critical path in CI with fixtures, not live paid APIs, whenever budgets allow.
Keep configuration outside application code. Environment files, secret stores, and feature flags belong in one place operators can audit without reading the whole graph.
Expose tools with narrow schemas and explicit side-effect labels. Hosts need to know which calls mutate state before they auto-approve.
Before promoting the stack, freeze versions, capture a golden transcript for the critical path, and confirm rollback steps. Shared environments need rate limits, tenancy checks, and a clear owner for secret rotation. Prefer boring reliability over clever one-off demos.
Batch note for fac76ac7d013: keep provider keys out of the repo, set a per-session token ceiling, and store transcripts next to the eval fixtures so later model swaps stay comparable.