Show HN: Polymcp – Turn Any Python Function into an MCP Tool for AI Agents
I built Polymcp, a framework that allows you to transform any Python function into an MCP (Model Context Protocol) tool ready to be used by AI agents. No rewriting, no complex integrations.
Examples
Simple function:
from polymcp.polymcp_toolkit import expose_tools_http
def add(a: int, b: int) -> int: """Add two numbers""" return a + b
app = expose_tools_http([add], title="Math Tools")
Run with:
uvicorn server_mcp:app --reload
Now add is exposed via MCP and can be called directly by AI agents.
API function:
import requests from polymcp.polymcp_toolkit import expose_tools_http
def get_weather(city: str): """Return current weather data for a city""" response = requests.get(f"https://api.weatherapi.com/v1/current.json?q={city}") return response.json()
app = expose_tools_http([get_weather], title="Weather Tools")
AI agents can call get_weather("London") to get real-time weather data instantly.
Business workflow function:
import pandas as pd from polymcp.polymcp_toolkit import expose_tools_http
def calculate_commissions(sales_data: list[dict]): """Calculate sales commissions from sales data""" df = pd.DataFrame(sales_data) df["commission"] = df["sales_amount"] * 0.05 return df.to_dict(orient="records")
app = expose_tools_http([calculate_commissions], title="Business Tools")
AI agents can now generate commission reports automatically.
Why it matters for companies • Reuse existing code immediately: legacy scripts, internal libraries, APIs. • Automate complex workflows: AI can orchestrate multiple tools reliably. • Plug-and-play: multiple Python functions exposed on the same MCP server. • Reduce development time: no custom wrappers or middleware needed. • Built-in reliability: input/output validation and error handling included.
Polymcp makes Python functions immediately usable by AI agents, standardizing integration across enterprise software.
If you want people to adopt your tool, you may need to explain any advantage this has over fastmcp.
It's already easy to expose a python function as an MCP server. From the fastmcp docs:
Hi thanks for the comment, I’m not trying to replace FastMCP (or anything else), and I’m not really comparing on the “basic MCP server” use case.
PolyMCP, beyond creating MCP servers over HTTP and stdio, WASM (Pyodide) bundle to run tools in the browser/edge with an “MCP-style” tool interface,provides unified agent/orchestration across multiple MCP servers, plus an Inspector UI and production guardrails (budgets, logging, redaction, allowlists, retries).
The goal is to be a single, end-to-end toolkit for developers: tool exposure + debugging + governance + orchestration.
None of this came across in what you wrote in your Show HN.
because I wanted to introduce this part of PolyMCP that can take you from code with only functions to an MCP.