Python client, based on fastmcp, for connecting to MCP servers through multiple protocols, specifically designed to work with integrated language models.
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
Python MCP Client
Python client, based on fastmcp, for connecting to MCP servers through multiple protocols, specifically designed to work with integrated language models.
Table of Contents
- Overview
- Installation
- Implemented Models
- Implemented Transfer Protocols
- System Requirements
- Usage Example
- Version History
- Project Status
- License
Overview
This package provides a Python interface to connect to MCP servers in an easy, intuitive, and configurable way. It offers a modular architecture that allows for easy extension of new transfer protocols and language models. Currently includes support for HTTPStream and GPT-4 mini, with expansion capability for more options in the future.
Installation
To install the MCP client, you can use pip:
pip install mcp-llm-client
Implemented Models
The client currently supports the following language models:
| Model | Technical Description |
|---|---|
| gpt4o-mini | Optimized implementation of the GPT-4 model that provides a balance between computational performance and resource efficiency. This model is specifically designed to operate in environments with memory constraints while maintaining superior predictive quality. |
Implemented Transfer Protocols
Protocols for communication with MCP servers:
| Protocol | Status | Technical Characteristics |
|---|---|---|
| HTTPStream | Implemented | Asynchronous HTTP-based protocol that enables continuous data streaming. Characterized by low memory consumption and real-time processing capability for partial responses. |
| SSE (Server-Sent Events) | Not Implemented | Unidirectional protocol that allows the server to send multiple updated events through a single HTTP connection. Designed specifically for applications requiring real-time updates from the server. |
| stdio | Not Implemented | Standard input/output interface that facilitates direct communication between processes. Will provide a lightweight alternative for local environments and unit testing. |
Future Development Planning
Pending Language Models
- Integration of additional language models
- Implementation of dynamic model selection system
- Optimization of model loading and management
Pending Protocols
- Complete implementation of SSE for better real-time event handling
- Development of stdio interface for local environments
- Performance optimization across all protocols
System Requirements
Environmental Configuration
-
.envfile: The.envfile contains the authentication credentials necessary for integration with external services. This file must be created in the project root directory with the following format:# .env # OpenAI Authentication OPENAI_API_KEY=<YOUR OPENAI-API-KEY>
-
config.jsonfile: Theconfig.jsonfile defines the configuration of available MCP servers. It must be created in the project root directory with the following structure:{ "mcp_servers": { "example_server": { "http": "http://0.0.0.0:8000/server/mcp", "name": "Example mcp server", "description": "A simple example MCP server" } } }
If you need an MCP server to test the code, you can use simple-mcp-server.
Software Requirements
- Python 3.11+
- openai package
- fastmcp package
Usage Example
#main.py
from mcpclient import ClientLLM
#Create a client
client: ClientLLM = ClientLLM()
while True:
query:str = input("> ")
#call client with a string query
print(client(query))
Version History
v0.0.1
- Initial implementation of
ClientLLMclient - Complete integration of
httpstreamprotocol (fasmcp) - Connectivity with multiple servers
- Simplified config.json file for connection management
- Efficient processing of multiple simultaneous requests to tools and resources within a single query
- Simple connection without authorization (compatible only with servers that do not require authentication)
Project Status
⚠️ Important Notice: This project is currently in active development phase. As a result, errors or unexpected behaviors may occur during usage
License
MIT License. See license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_llm_client-0.0.1.tar.gz.
File metadata
- Download URL: mcp_llm_client-0.0.1.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2f1cdd684edac800401e44b9bfe449eb8ee7de1479c55f475856b9e5433aa29
|
|
| MD5 |
3a649775e07c104bdf67599de673bdf9
|
|
| BLAKE2b-256 |
e23fa2a58a6d876db1928bdf1f598c195db6dc078d92745da921bd95174ceaa9
|
File details
Details for the file mcp_llm_client-0.0.1-py3-none-any.whl.
File metadata
- Download URL: mcp_llm_client-0.0.1-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c5a0401865662540ce73649b5c2a38716f164e218301cfc92dd96c2eb84bd00
|
|
| MD5 |
8327c9e6cf6c1af6bb617c82a0c778a9
|
|
| BLAKE2b-256 |
1bf2ab9e59155a4bbc0523c140cfc2fed4a755d8102c52816c8d77e8e1ce5f9d
|