A Simple MCP Server and Client
A simple MCP example with client and server
logesh-kumar
README
A Simple MCP Server and Client
This is a simple Model Context Protocol (MCP) server and client implementation that demonstrates how to expose and access weather information.
Server
The server is implemented in server.js
. It provides the following capabilities:
-
Resources:
city://NewYork
: Basic information about New York Citycity://London
: Basic information about Londoncity://Tokyo
: Basic information about Tokyo
-
Tools:
get-weather
: Get weather forecast for a city with parameters for city name and number of days
-
Prompts:
weather-advice
: Get travel advice based on weather conditions
Client
The client is implemented in client.js
. It demonstrates how to:
- Connect to the MCP server
- List available resources
- Read a specific city resource
- Call the weather forecast tool
- Get a weather advice prompt
JSON-RPC Communication
This implementation uses JSON-RPC 2.0 as the underlying communication protocol between client and server. Key JSON-RPC concepts used:
- Methods: Standard method names like
resources/list
,resources/read
,tools/call
, andprompts/get
- Parameters: Input data sent with method calls
- Request IDs: Unique identifiers to match requests with responses
- Results/Errors: Structured response data or error information
The MCP SDK abstracts much of this, but understanding the protocol is helpful for debugging and customization. You can see the raw JSON-RPC messages by examining the console output.
Running the Server and Client
-
Start the client:
node client.js
Starting the client will automatically start the server as a child process. The client will connect to the server and perform all the example operations.
-
To start the server independently:
node server.js
Transport Mechanism
This example uses stdio (standard input/output) as the transport mechanism between client and server. When the client is started, it spawns the server as a child process and communicates with it through stdin/stdout streams.
A custom logging transport is implemented to show the messages exchanged between the client and server. These messages are logged to the console in a human-readable format, which is helpful for understanding the protocol.
Troubleshooting
If you encounter issues with resource or prompt requests timing out, check the server implementation. The example includes direct message handling for certain request types to work around limitations in the current SDK version.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.