
EasyMCP
A beginner-friendly client for the MCP (Model Context Protocol). Connect to SSE, NPX, and UV servers, and integrate with OpenAI for dynamic tool interactions. Perfect for exploring server connections and chat enhancements.
what is EasyMCP?
EasyMCP is a beginner-friendly client for the Model Context Protocol (MCP) that allows users to connect to various server types (SSE, NPX, UV) and integrate with OpenAI for enhanced chat interactions.
how to use EasyMCP?
To use EasyMCP, clone the repository, set up a virtual environment, install the required packages, and run the client. You can then select a server and interact with it by typing queries.
key features of EasyMCP?
- Multiple server support (SSE, NPX, UV)
- Dynamic tool integration for processing user queries
- Interactive chat loop with OpenAI API
- Easy server configuration management
use cases of EasyMCP?
- Connecting to different MCP servers for various tasks.
- Enhancing chat experiences with OpenAI integration.
- Managing server configurations easily through JSON files.
FAQ from EasyMCP?
- What programming language is EasyMCP written in?
EasyMCP is written in Python.
- Do I need an OpenAI API key to use EasyMCP?
Yes, a valid OpenAI API key is required for integration.
- Is EasyMCP open source?
Yes, EasyMCP is open source and available under the MIT License.
EasyMCP
EasyMCP is a flexible and beginner-friendly client for the Model Context Protocol (MCP). It allows you to connect to different types of MCP servers—SSE, NPX, and UV—so you can interact with various tools (e.g., file operations) and integrate with the OpenAI API for an enhanced chat experience.
Features
- Multiple Server Support
- SSE Servers: Connect via Server-Sent Events using a server URL.
- NPX Servers: Launch servers using NPX commands (compatible with Windows and non-Windows systems).
- UV Servers: Run servers configured with UV commands.
- Dynamic Tool Integration:
The client automatically retrieves available tools from the connected server and uses them to process user queries. - Interactive Chat Loop:
Type queries and let the client process responses using OpenAI and the available MCP tools. - Configuration Management:
Easily add new server configurations withadd_server.py
, which updates the appropriate configuration file (e.g.,sse_servers.json
,npx_servers.json
, oruv_servers.json
).
Prerequisites
- Python 3.10+ (for compatibility with
asyncio
and modern async features) - A valid OpenAI API key (set in your
.env
file) - Other API keys as needed for additional integrations
Installation
-
Clone the repository:
git clone https://github.com/yourusername/EasyMCP.git cd EasyMCP
-
Create a virtual environment and activate it:
On Windows:
python -m venv .venv .venv\Scripts\activate
On macOS/Linux:
python3 -m venv .venv source .venv/bin/activate
-
Install the required packages:
pip install -r requirements.txt
-
Set up your environment variables:
Rename the provided.env.sample
to.env
(or create your own.env
) and fill in the necessary API keys and configurations.
Server Configuration Files
EasyMCP uses several JSON configuration files to manage servers:
-
sse_servers.json: Contains configurations for SSE-based servers.
Example:{ "mcpServers": { "@modelcontextprotocol/time": { "url": "https://router.mcp.so/sse/pnabizm8lkazpr" } } }
-
npx_servers.json: Contains configurations for NPX servers.
Example:{ "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "C:\\Users\\lotus\\Documents\\llm_books_papers", "C:\\Users\\lotus\\Documents\\llm_books_papers" ] } } }
-
uv_servers.json: Contains configurations for UV servers.
Example:{ "mcpServers": { "sqlite": { "command": "uv", "args": [ "--directory", "parent_of_servers_repo/servers/src/sqlite", "run", "mcp-server-sqlite", "--db-path", "~/test.db" ] } } }
Usage
-
Run the MCP Client:
python main.py
-
Select a Server:
The client will load available servers fromsse_servers.json
,npx_servers.json
, anduv_servers.json
. When prompted, enter the corresponding number to select a server. -
Interact With the Client:
Once connected, type your queries. For example:- To read a PDF file:
read Build a Large Language Model.pdf
- To use a file tool:
use read_file tool and read 2308.11432v5.pdf
The client will guide you through constructing proper file paths based on the allowed directories provided by the MCP server.
- To read a PDF file:
Adding a New Server
To add a new MCP server configuration:
-
Prepare your JSON configuration for the new server.
-
Run
add_server.py
:python add_server.py
This script will:
- Detect the server type (NPX, UV, or default to SSE).
- Append the new configuration to the appropriate file (e.g.,
npx_servers.json
,uv_servers.json
, orsse_servers.json
).
Example Files
-
main.py:
The main entry point of the EasyMCP client. It handles server connections, the chat loop, and processing queries with OpenAI integration. -
add_server.py:
A script to add new MCP server configurations to the JSON files. -
.env:
Contains environment variables such as API keys and model configurations. -
requirements.txt:
Lists the project dependencies.
Contributing
Contributions are welcome! Please fork the repository and submit pull requests with detailed descriptions of your changes.
License
This project is open source and available under the MIT License.
Contact
For questions or feature requests, feel free to open an issue in the GitHub repository.
Happy coding!