About MCP Starter Project
A starter project for developers learning to build a Python MCP server and TypeScript client. It demonstrates documentation search, session-based chat history, and tool execution through a Hugging Face model.
Key features
- 01Python MCP server
- 02TypeScript client with Express
- 03Search LangChain, LlamaIndex, and OpenAI documentation
- 04Session-based conversation history
- 05Tool-call execution and error handling
Use cases
- 01Prototype a server-client MCP application
- 02Search AI library documentation in chat
- 03Test session-aware tool interactions
MCP support
Includes a Python MCP server that exposes documentation search tools and a TypeScript client that connects to it, retrieves tools, and executes model-generated tool calls.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP Starter Project
What is MCP?
The Model Context Protocol (MCP) is a standard for building AI applications that can interact with external tools and APIs. It consists of two main components:
- MCP Server: A Python service that defines and exposes tools/functions that can be called by AI models
- MCP Client: A TypeScript/JavaScript client that connects to the MCP server and manages interactions between AI models and tools
Project Structure
mcp_starter/
├── mcp-server/ # Python MCP server implementation
│ ├── main.py # Server with documentation search tool
│ └── pyproject.toml # Python dependencies
└── mcp-clients/ # TypeScript MCP client implementation
├── index.ts # Express server with HuggingFace integration
└── package.json # Node.js dependencies
Getting Started
Prerequisites
- Python 3.11 or higher
- Node.js 18 or higher
- Hugging Face API key
- Serper API key for Google Search functionality
Setting Up the Server
- Create a Python virtual environment and activate it:
cd mcp-server
python -m venv .venv
# On Windows
.venv\Scripts\activate
- Install dependencies:
pip install -e .
- Create a
.envfile in themcp-serverdirectory:
SERPER_API_KEY=your_serper_api_key_here
Setting Up the Client
- Install Node.js dependencies:
cd mcp-clients
npm install
- Create a
.envfile in themcp-clientsdirectory:
HUGGINGFACE_API_KEY=your_huggingface_api_key_here
- Build the TypeScript code:
npm run build
Running the Application
- Start the MCP server:
cd mcp-server
python main.py
- In a new terminal, start the client server:
cd mcp-clients
node build/index.js ../mcp-server/main.py
Using the API
The client exposes two endpoints:
- Health Check:
GET http://localhost:3000/health - Chat:
POST http://localhost:3000/chat
Example chat request:
{
"query": "Search the langchain docs for RAG",
"sessionId": "user123"
}
Features
-
Documentation Search Tool: Search documentation for popular AI libraries:
- LangChain
- LlamaIndex
- OpenAI
-
Conversation Management: Maintains chat history per session
-
Tool Integration: Seamlessly integrates AI model responses with tool calls
-
Error Handling: Robust error handling for API calls and tool execution
How It Works
- The MCP server defines tools that can be called by AI models
- The client connects to the MCP server and retrieves available tools
- When a user sends a query:
- The client formats the conversation history
- Sends it to the Hugging Face model
- Extracts and executes tool calls from the model's response
- Returns the final response including tool results
Environment Variables
Server
SERPER_API_KEY: API key for Google Search functionality
Client
HUGGINGFACE_API_KEY: API key for accessing Hugging Face models
License
MIT License
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.