Enterprise MCP Server
Provides OpenTelemetry tracing for monitoring the MCP server.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Enterprise MCP Serverfind tools for sales data analysis"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Enterprise MCP Server
Production-grade FastMCP 3.x server template built for teams that need to scale: semantic tool retrieval, dynamic providers, parameterised resource templates, paginated tool lists, session-scoped role unlocking, middleware, and full auth.
Architecture
server.py ← entry point — assembles everything
config/settings.py ← ALL configuration ← EDIT THIS FIRST
│
├── providers/ FastMCP 3.0 Dynamic Providers
│ └── registry.py FileSystemProvider · OpenAPIProvider · ProxyProvider
│
├── transforms/ FastMCP 3.0 Transforms (middleware for providers)
│ └── pipeline.py PrefixTransform · VersionFilter · TagFilter
│
├── tools/
│ ├── meta_tools.py search_tools (Search Transform) · unlock_role (progressive disclosure)
│ └── example_tools.py ← template for your own tools; drop files here
│
├── resources/
│ └── templates.py Parameterised URIs: enterprise://tables/{name}/schema
│
├── middleware/
│ └── stack.py Logging · RateLimiting · ResponseLimiting · Caching
│
├── auth/
│ └── setup.py JWT · OAuth 2.1 · Bearer
│
└── utils/
├── lifespan.py Startup / shutdown hooks
└── otel.py OpenTelemetry tracingRelated MCP server: mcp-base
FastMCP 3.x Scale Features Used
Feature | Where | Config key |
Pagination ( |
|
|
Dynamic Providers |
|
|
Search Transforms (meta-tool) |
|
|
Resource Templates |
|
|
Session State + progressive disclosure |
|
|
Component Versioning |
|
|
Tag-based visibility |
|
|
Background Tasks |
|
|
Returnable errors |
| — |
OpenTelemetry |
|
|
Quickstart
# 1. Install
pip install fastmcp>=3.4.1 httpx
# 2. Configure
# Open config/settings.py and fill every <CONFIGURE> marker.
# 3. Run (development — hot reload)
fastmcp dev server.py
# 4. Run (production)
python server.pyOptional extras
pip install fastmcp[tasks] # background tasks via Docket
pip install opentelemetry-sdk opentelemetry-exporter-otlp-proto-http # OTELHow to Add Your Own Tools
Drop a .py file into tools/ with a local mcp = FastMCP(...) instance and
decorate your functions. FileSystemProvider picks them up automatically
(set PROVIDERS.filesystem.reload = True for zero-restart hot-reload).
# tools/my_api_tools.py
from fastmcp import FastMCP, Context
mcp = FastMCP("my-api")
@mcp.tool(tags={"data", "read"}, version="1.0")
async def get_report(report_id: str, ctx: Context) -> dict:
"""Fetch an enterprise report by ID."""
# ... your implementation
return {}Sensitive tools? Add tags={"admin"} (or any key in ROLE_GATES) and they
are hidden from the default tool list. Clients call unlock_role("admin")
after authenticating to reveal them for their session.
Semantic Search Flow
LLM calls search_tools(query="show me revenue by region")
│
▼
Your retrieval API (SEMANTIC_SEARCH.api_base_url)
│
▼
Top-K tools above score_threshold returned to LLM
│
▼
LLM calls the specific tool it needsThe LLM never receives the full tool catalog — only the relevant subset.
Pagination Flow
Client sends tools/list (no cursor)
│
▼
Server returns page 1 (LIST_PAGE_SIZE items) + nextCursor
│
▼
Client sends tools/list?cursor=<nextCursor>
│
▼
... repeat until nextCursor is nullfastmcp.Client.list_tools() handles this automatically.
Use list_tools_mcp(cursor=...) for manual control.
Testing
pip install pytest pytest-asyncio
pytest tests/Related MCP Connectors
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Token-free MCP server for structured RevoGrid Core, Pro, and Enterprise knowledge retrieval.
OAuth-protected, read-only-by-default MCP server for provenance-labeled QuillCaddie project memory.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- FlicenseBqualityDmaintenanceA production-ready MCP server template that enables developers to quickly build and deploy MCP servers with dynamic tool/resource loading, YAML-based prompts, and seamless OpenShift deployment. Supports both local development with hot-reload and production HTTP deployment with optional JWT authentication.1-
- AlicenseNot gradedqualityDmaintenanceA bare-bones FastMCP server template designed to serve as a starting point for building custom Model Context Protocol servers. It provides a foundational structure for implementing tools over HTTP and includes a built-in health check utility.GPL 3.0
- AlicenseNot gradedqualityDmaintenanceA production-ready FastMCP server template supporting local development with stdio and secure web deployment with HTTPS and OAuth.4MIT
- AlicenseAqualityCmaintenanceA production-ready foundation for building secure, observable MCP servers with built-in authentication, rate limiting, and reference tools like database-query and semantic-search.1532 npmMIT