Skip to main content

Python MCP Server template

Project description

mcp-server-template-python

A very simple Python template for building MCP servers using Streamable HTTP transport.

Overview

This template provides a foundation for creating MCP servers that can communicate with AI assistants and other MCP clients. It includes a simple HTTP server implementation with example tools, resources & prompts to help you get started building your own MCP integrations.

Deploy

Use the following button to clone the repository and directly deploy the server to Alpic

Deploy on Alpic

Prerequisites

Installation

  1. Clone the repository:
git clone git@github.com:alpic-ai/mcp-server-template-python.git
cd mcp-server-template-python
  1. Install python version & dependencies:
uv python install
uv sync --locked

Usage

Start the server on port 3000:

uv run main.py

Running the Inspector

Requirements

  • Node.js: ^22.7.5

Quick Start (UI mode)

To get up and running right away with the UI, just execute the following:

npx @modelcontextprotocol/inspector

The inspector server will start up and the UI will be accessible at http://localhost:6274.

You can test your server locally by selecting:

Development

Adding New Tools

To add a new tool, modify main.py:

@mcp.tool(
    title="Your Tool Name",
    description="Tool Description for the LLM",
)
async def new_tool(
    tool_param1: str = Field(description="The description of the param1 for the LLM"), 
    tool_param2: float = Field(description="The description of the param2 for the LLM") 
)-> str:
    """The new tool underlying method"""
    result = await some_api_call(tool_param1, tool_param2)
    return result

Adding New Resources

To add a new resource, modify main.py:

@mcp.resource(
    uri="your-scheme://{param1}/{param2}",
    description="Description of what this resource provides",
    name="Your Resource Name",
)
def your_resource(param1: str, param2: str) -> str:
    """The resource template implementation"""
    # Your resource logic here
    return f"Resource content for {param1} and {param2}"

The URI template uses {param_name} syntax to define parameters that will be extracted from the resource URI and passed to your function.

Adding New Prompts

To add a new prompt , modify main.py:

@mcp.prompt("")
async def your_prompt(
    prompt_param: str = Field(description="The description of the param for the user")
) -> str:
    """Generate a helpful prompt"""

    return f"You are a friendly assistant, help the user and don't forget to {prompt_param}."

Project details


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

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_alpic_ai_mcp_server_template-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_alpic_ai_mcp_server_template-0.1.0.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_alpic_ai_mcp_server_template-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5615b1a1f8d617e8d7e816aafbef88239f5d8c9731f5a0ebab8c5a60098c0584
MD5 2f1a3e9f9de57d778c683ce53d0efee1
BLAKE2b-256 f523809cdd4ca67a530ff4e4bb5657f86d6c08748bbcc64427fb57b6fbad8f9d

See more details on using hashes here.

File details

Details for the file iflow_mcp_alpic_ai_mcp_server_template-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_alpic_ai_mcp_server_template-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 3.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_alpic_ai_mcp_server_template-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2302402966e35e89fca681e71b40f21a5444a807902800ee9b2c4d729d2f078e
MD5 834695ad6f83e6c497149ccbdb76030b
BLAKE2b-256 7d1de8ea464daef0e9eafabc72c8c348330030d0a229ec8fea71b7d2bfec3768

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page