local_mcp_server-client_EAG-S-4
This project enables users to set up and interact with the Modular Computation Protocol (MCP) locally, featuring a server with various computational tools like math operations, string handling, and Pinta automation. It is designed to be extended and modified, promoting contributions from the community.
🧠 mcp_server-client_EAG-S-4 - Local Setup
This repository provides a minimal implementation to set up and interact with the MCP (Modular Computation Protocol) locally. It consists of a server that exposes various computational tools and a client that communicates with the server to invoke those tools.
The project is managed using uv
, a fast Python package manager and workflow tool.
📂 Project Structure
mcp_server.py
— Hosts the MCP server with 28 tools available for interaction.mcp_client.py
— The entry point of the project; runs a client that connects to the MCP server and calls its tools.pyproject.toml
— Project configuration and dependencies using PEP 621.uv.lock
— Auto-generated lockfile for reproducible installations usinguv
.token.env
— Environment file that likely contains secrets or tokens.README.md
— Project documentation."""
🛠️ Available Tools on the MCP Server
🔢 Math Tools
add(a, b)
— Add two numbersadd_list(l)
— Add all numbers in a listsubtract(a, b)
— Subtract two numbersmultiply(a, b)
— Multiply two numbersdivide(a, b)
— Divide two numberspower(a, b)
— Raise a to the power of bsqrt(a)
— Square rootcbrt(a)
— Cube rootfactorial(a)
— Factoriallog(a)
— Natural logarithmremainder(a, b)
— Modulus operationsin(a)
— Sinecos(a)
— Cosinetan(a)
— Tangentmine(a, b)
— Special mining toolint_list_to_exponential_sum(int_list)
— Sum of exponentials of integersfibonacci_numbers(n)
— First n Fibonacci numbers
🧠 String/Image Tools
strings_to_chars_to_int(string)
— Convert characters to ASCIIcreate_thumbnail(image_path)
— Generate a thumbnail from an image
🖌️ Pinta Automation Tools
open_pinta_application()
— Launch and focus Pintaselect_rectangle_tool()
select_text_tool()
select_circle_tool()
draw_rectangle(x1, y1, x2, y2)
write_text_inside_rectangle(text, x1, y1, x2, y2)
draw_circle(x1, y1, radius)
get_lines_of_rectangle(x1, y1, x2, y2)
— Return lines from rectangle coordinatesget_midpoint_of_line(x1, y1, x2, y2)
— Return midpoint of a line
🚀 Getting Started
1. Clone the Repository
git clone https://github.com/your-username/mcp-protocol.git
cd mcp-protocol
2. Install uv
(if not already installed)
curl -Ls https://astral.sh/uv/install.sh | sh
Verify installation:
uv --version
3. Set Up the Project Environment
uv venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
uv pip install -r pyproject.toml
If
requirements.txt
doesn't exist:uv pip freeze > requirements.txt
4. Test MCP Server with GUI client
mcp dev mcp_server.py
5. Run the Client
python mcp_client.py
📌 Notes
- Ensure Pinta is installed if you're using Pinta-related tools.
- Image tools like
create_thumbnail
require valid image paths. mcp_client.py
is the main entry point to interact with the protocol.
📄 License
MIT License. Feel free to fork, modify, and contribute.
🤝 Contributing
Pull requests are welcome. For major changes, please open an issue first.