custom-mcp-server

mabrow05/custom-mcp-server

3.1

If you are the rightful owner of custom-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Model Context Protocol Server for LLM Tool Integration. This server provides a standardized way to handle tool connections for LLM-powered applications.

The Model Context Protocol (MCP) Server is designed to facilitate the integration of tools with applications powered by Large Language Models (LLMs). It provides a standardized protocol for managing tool connections, ensuring seamless communication and execution of tasks. The server supports both local and Docker-based setups, making it versatile for different development environments. It includes features for authentication, tool registration, and execution, with a focus on security and scalability. The server is built with Python and can be easily extended to include custom tools, making it a flexible solution for developers looking to enhance their LLM applications with additional functionalities.

Features

  • Standardized Protocol: Provides a consistent way to manage tool connections for LLM applications.
  • Authentication: Uses JWT tokens for secure access to API endpoints.
  • Tool Management: Allows for listing, executing, and registering new tools.
  • Flexible Setup: Supports both local and Docker-based development environments.
  • Security Focus: Includes recommendations for secure deployment, such as strong secret keys and HTTPS usage.

Usages

local development setup

python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
uv pip install -e .
python -m mcp_server.server

docker setup

docker-compose up --build

get token

curl -X POST http://localhost:8000/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "username=testuser&password=testpass"

list available tools

curl http://localhost:8000/list_tools \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"

execute tool

curl -X POST http://localhost:8000/execute_tool \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "tool_name": "web_search",
    "parameters": {
        "query": "example search query",
        "num_results": 3
    }
}'

register new tool

curl -X POST http://localhost:8000/register_tool \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "custom_tool",
    "description": "A custom tool example",
    "type": "function",
    "parameters": [
        {
            "name": "param1",
            "type": "string",
            "description": "First parameter",
            "required": true
        },
        {
            "name": "param2",
            "type": "integer",
            "description": "Second parameter",
            "required": false,
            "default": 0
        }
    ]
}'