MCP Dev Quickstart guides

Try out AgentCat

Build a Custom Claude Connector with a Remote MCP Server

Stand up a remote MCP server in TypeScript, expose it publicly, add it to Claude as a custom connector, and fix the connection when it breaks.

Building a serverless MCP server

Deploy an MCP server to AWS Lambda, Cloudflare Workers, or Vercel over Streamable HTTP, using stateless request handling so a fresh instance can serve any request.

Building an MCP server in Rust

Build an MCP server with the official Rust SDK (rmcp): the tool_router and tool macros, typed Parameters, structured output with Json, the tool-vs-protocol error contract, and both stdio and Streamable HTTP transports with runnable code. Pinned to the rmcp 2.2.0 line; rmcp 3.x targets the 2026-07-28 spec revision.

OpenAI Apps SDK TypeScript Quickstart

Build a working ChatGPT app in TypeScript: an MCP server whose tool is bound to a ui:// resource so the widget actually renders inline. Uses McpServer, the MCP Apps extension helpers, and Streamable HTTP, verified against current docs.

OpenAI Apps SDK Python Quickstart

Build a working ChatGPT app in Python: an MCP server whose tool is bound to a ui:// resource so the widget actually renders inline. Uses the in-SDK FastMCP, its meta= decorator argument, and Streamable HTTP, cross-checked against OpenAI's official Python example.

Error handling in custom MCP servers

The one distinction that governs MCP error handling: protocol errors are JSON-RPC errors that fail the request, while tool failures are ordinary results with isError set true so the model can see and recover from them.

Configuring MCP installations for production deployments

What actually changes when an MCP server moves from your laptop to production: Streamable HTTP transport, the OAuth Resource Server auth model, Origin validation and DNS rebinding, statelessness, and secrets. The MCP-specific parts, verified against the 2026-07-28 spec revision and the SDKs, with the generic DevOps trimmed.

Building a Streamable HTTP MCP server

Build a remote MCP server on the Streamable HTTP transport with the official TypeScript SDK, in the shape the 2026-07-28 spec revision requires: one POST-only endpoint, the headers that bite people, OAuth, and scaling out now that sessions are gone.

Building an MCP server in TypeScript

Build an MCP server with the TypeScript SDK: the @modelcontextprotocol/sdk 1.x McpServer API pinned to 1.30.0, registerTool with structured output, and both transports (stdio and Streamable HTTP), plus a note on the newer split @modelcontextprotocol/server 2.0 line for the 2026-07-28 spec revision.

Building an MCP server in Python using FastMCP

Build an MCP server in Python with FastMCP, with a clear answer to the question that trips everyone up: the in-SDK MCPServer (called FastMCP before the 2026-07-28 rename) versus the standalone fastmcp package, and which one to install.

Building an MCP server in Go

Build an MCP server with the official Go SDK: mcp.NewServer plus the generic AddTool that infers schemas from your structs, resources, prompts, and both transports (stdio and Streamable HTTP), including the stateless model the 2026-07-28 spec revision introduced and how to turn it on in go-sdk v1.7.0.

Adding custom tools to an MCP server in TypeScript

How to author high-quality MCP tools in TypeScript with registerTool: Zod input schemas, structured output, error handling, and behavior annotations. Written for the @modelcontextprotocol/sdk 1.x line, with a note on the split 2.0 packages for the 2026-07-28 spec revision.

Adding custom tools to an MCP server in Python

A deep dive into authoring MCP tools in Python with FastMCP: how type hints become the input schema, how docstrings become descriptions, validating arguments with Field, returning structured output, and choosing between raising and returning errors so the model can react.

Register your first WebMCP tool with navigator.modelContext

How to use navigator.modelContext to register tools that AI agents can call directly from your website.

Dynamically register and unregister WebMCP tools

Control which WebMCP tools are available based on user roles, routes, or feature flags using conditional rendering and lifecycle hooks.

Build declarative WebMCP tools with HTML form attributes

Turn existing HTML forms into MCP tools using declarative attributes — no JavaScript required.

Build WebMCP tools with Vue.js using navigator.modelContext

Create a Vue 3 composable that registers and unregisters WebMCP tools tied to component lifecycle.

Build a WebMCP confirmation flow with requestUserInteraction

Use the requestUserInteraction API to prompt users for confirmation before executing destructive WebMCP tool actions.

Add WebMCP tools to a WordPress site without JavaScript

Use WebMCP's declarative HTML form attributes to expose tools from a WordPress site — no JavaScript or build step required.

Add WebMCP tools to a React app with webmcp-react

How to use the webmcp-react library to register WebMCP tools in React with Zod schemas and connect them to desktop clients.

Add WebMCP tools to a Next.js App Router project

Set up webmcp-react in a Next.js 15 App Router project with proper client component boundaries and SSR handling.

Set Up Multi-Platform Telemetry for MCP Servers

Send MCP telemetry data to multiple observability platforms simultaneously for comprehensive monitoring.

Installing MCP servers globally vs locally: which approach to choose

Choose between global and local MCP server installations based on your project needs and workflow.

How to fork and customize an open-source MCP server

Fork and customize existing MCP servers to add new tools, resources, and functionality for your needs.

Building a stdio MCP server

Build MCP servers with stdio transport for local CLI tools and subprocess communication.