Model Context Protocol (MCP) Guide: Build Custom Tools for Claude & Cursor
What You Will Master in This Tutorial
- Understand the MCP client-server protocol and JSON-RPC 2.0 transport.
- Build a production MCP server in Python using FastMCP.
- Expose secure database queries and file readers as agent tools.
- Configure Cursor, Windsurf, and Claude Desktop to consume custom MCP servers.
1. What is Model Context Protocol (MCP)?
Model Context Protocol (MCP) is an open standard introduced by Anthropic that standardizes how AI applications connect to external data sources, developer tools, and proprietary environments. Think of MCP as the USB-C port for AI agents.
PYTHON
from mcp.server.fastmcp import FastMCP
# Initialize MCP Server
mcp = FastMCP("PostgresTools")
@mcp.tool()
def run_read_only_query(query: str) -> str:
"""Execute a safe SELECT query against the staging database."""
if not query.strip().lower().startswith("select"):
raise ValueError("Only read-only SELECT queries are permitted.")
# Execute query against database pool
return "Query executed: 24 records returned."
if __name__ == "__main__":
mcp.run(transport="stdio")
Note: MCP servers can run locally over stdio or remotely over Server-Sent Events (SSE).
Advertisement
Cloud Infrastructure & High-Performance Dev Environments
Knowledge Check: Test Your Understanding
1. What communication protocol does MCP utilize under the hood?
Frequently Asked Questions
Can I use MCP with Cursor and VS Code?
Yes! Both Cursor, Windsurf, and modern VS Code extensions natively support configuring custom MCP servers in their settings JSON.