A basic implementation of the Model Context Protocol (MCP) using the TypeScript SDK, providing server and client communication over stdio transport.
1 stars1 watching0 forks
MCP Server-Client Example
This project demonstrates a basic implementation of the Model Context Protocol (MCP) using the TypeScript SDK. It includes both a server and client implementation that communicate over stdio transport.
Overview
The example includes:
- An MCP server that provides access to resources
- An MCP client that connects to the server and requests resources
- Basic resource listing and reading functionality
Prerequisites
- Node.js (v16 or higher)
- npm
Installation
Clone the repository and install dependencies:
npm install
Project Structure
src/
├── index.ts # Server implementation
└── client.ts # Client implementation
Running the Example
You'll need to run the server and client in separate terminal windows.
- Start the server:
npm run start:server
- In a new terminal, start the client:
npm run start:client
The client will:
- Connect to the server
- Request a list of available resources
- Read the content of an example resource
Server Capabilities
The server currently supports:
- Resource listing
- Resource reading
- Basic error handling for unknown resources
Available Resources
The example server provides access to:
file:///example.txt
: A simple text resource
Development
Scripts
npm run start:server
: Starts the MCP servernpm run start:client
: Starts the MCP client
Adding New Resources
To add new resources, modify the ListResourcesRequestSchema
handler in src/index.ts
:
server.setRequestHandler(ListResourcesRequestSchema, async () => {
return {
resources: [
{
uri: "file:///example.txt",
name: "Example Resource",
},
// Add new resources here
],
};
});
Dependencies
@modelcontextprotocol/sdk
: MCP TypeScript SDKts-node
: TypeScript execution environmenttypescript
: TypeScript compiler
License
ISC
Features
Resources
Listing
Reading
Transport
Error
Category
Development Tools