EnrichMCP

v1.0.0Developer Toolsstable

EnrichMCP is a python framework for building data driven MCP servers

enrichmcpmcpai-integration
Share:
645
Stars
0
Downloads
0
Weekly
0/5

What is EnrichMCP?

EnrichMCP is a Model Context Protocol (MCP) server that allows AI assistants like Claude, Cursor, and VS Code to enrichmcp is a python framework for building data driven mcp servers

EnrichMCP is a python framework for building data driven MCP servers

This server falls under the Developer Tools category on MCPgee, the world's largest MCP server directory with 33,000+ servers.

Features

  • EnrichMCP is a python framework for building data driven MCP

Use Cases

Build data-driven MCP servers using the EnrichMCP Python framework. Create rapid prototypes of MCP servers for specific use cases. Manage server lifecycle and data handling with minimal boilerplate.
featureform

Maintainer

LicenseApache-2.0
Languagepython
Versionv1.0.0
UpdatedMay 21, 2026
Statushealthy
Maintenanceactive

Works with

ClaudeOpenAIwindowsmacoslinux

Installation

Manual Installation

npx enrichmcp

Configuration

Configuration Details

Config File

claude_desktop_config.json

Performance

Response Metrics

Response Time< 200ms
ThroughputMedium

Resource Usage

Memory UsageLow
CPU UsageLow

How to Set Up and Use EnrichMCP

EnrichMCP is a Python framework described as an ORM for AI agents — it automatically generates typed, discoverable MCP tools from your existing data models, whether SQLAlchemy database models or custom REST API wrappers. It handles entity relationships, input/output validation via Pydantic, schema discovery so AI agents understand your data structure, pagination, authentication context, and server-side LLM sampling, all with minimal boilerplate. The result is that AI agents can navigate your data as naturally as a developer using an ORM.

Prerequisites

  • Python 3.11 or higher
  • pip for package installation
  • An MCP client such as Claude Desktop
  • Optional: A PostgreSQL or SQLite database and SQLAlchemy if using the SQLAlchemy integration
  • Optional: An existing REST API to wrap with the HTTP gateway pattern
1

Install EnrichMCP

Install the enrichmcp package from PyPI. Add the sqlalchemy extra if you want to use the automatic SQLAlchemy model integration.

pip install enrichmcp

# With SQLAlchemy support
pip install enrichmcp[sqlalchemy]
2

Define your data models using EnrichMCP entities

Create your MCP application and decorate your Pydantic models with @app.entity(). Add Relationship fields to define how entities connect to each other. Use Field descriptions so AI agents understand each attribute.

from enrichmcp import EnrichMCP, EnrichModel, Relationship
from pydantic import Field

app = EnrichMCP("My Data API", "Description for AI agents")

@app.entity()
class Customer(EnrichModel):
    """Customer in the CRM."""
    id: int = Field(description="Unique customer ID")
    email: str = Field(description="Primary email address")
    orders: list["Order"] = Relationship(description="Purchase history")
3

Add retrieval and mutation handlers

Decorate functions with @app.retrieve() to expose them as MCP tools. Use @app.create(), @app.update(), and @app.delete() for mutation operations. EnrichMCP validates all inputs and outputs automatically.

@app.retrieve()
async def get_customer(customer_id: int) -> Customer:
    """Fetch a customer by ID."""
    return await db.get_customer(customer_id)

@Customer.orders.resolver
async def get_customer_orders(customer_id: int) -> list[Order]:
    """Fetch all orders for a customer."""
    return await db.get_orders(customer_id)
4

Run the MCP server

Call app.run() to start the server in stdio mode (default, for MCP clients). For HTTP/SSE mode use the transport argument.

if __name__ == "__main__":
    app.run()  # stdio mode for MCP clients
    # app.run(transport="streamable-http")  # HTTP mode
5

Add the server to your MCP client configuration

Point your MCP client at the Python script that runs your EnrichMCP server.

{
  "mcpServers": {
    "my-data-api": {
      "command": "python",
      "args": ["/absolute/path/to/my_server.py"]
    }
  }
}
6

Use the SQLAlchemy auto-integration for existing models

If you have existing SQLAlchemy models, use include_sqlalchemy_models() to automatically generate all MCP tools. Add EnrichSQLAlchemyMixin to your declarative base and pass it to the function.

from enrichmcp.sqlalchemy import include_sqlalchemy_models, sqlalchemy_lifespan, EnrichSQLAlchemyMixin

class Base(DeclarativeBase, EnrichSQLAlchemyMixin):
    pass

app = EnrichMCP("DB API", "Auto-generated from SQLAlchemy models",
    lifespan=sqlalchemy_lifespan(Base, engine))
include_sqlalchemy_models(app, Base)
app.run()

EnrichMCP Examples

Client configuration

Claude Desktop configuration pointing to a Python script that runs an EnrichMCP server. Replace the path with the absolute path to your server file.

{
  "mcpServers": {
    "enrichmcp-server": {
      "command": "python",
      "args": ["/absolute/path/to/my_enrichmcp_server.py"]
    }
  }
}

Prompts to try

Example prompts once an EnrichMCP server exposing a customer/order data model is connected to your AI assistant.

- "Show me the data model — what entities and relationships are available?"
- "Fetch customer with ID 42 and show their recent orders"
- "List all active customers with more than 5 orders"
- "Create a new order for customer 42 with total $149.99"
- "Navigate from order 101 to its customer and show their full profile"

Troubleshooting EnrichMCP

MCP client cannot find or start the EnrichMCP server

Ensure the command in your MCP config points to the correct Python interpreter (use the full path from 'which python' or 'which python3') and that EnrichMCP is installed in that Python environment. Virtual environment paths like .venv/bin/python work as the command value.

Relationship resolver is never called and returns empty results

Ensure the resolver decorator references the relationship field on the correct class: @ClassName.relationship_field.resolver. The resolver function parameter names must match the parent entity's primary key field name exactly.

SQLAlchemy auto-integration fails with asyncpg or database connection errors

The SQLAlchemy integration uses async SQLAlchemy. Ensure you are using create_async_engine() with an async driver string (e.g., 'postgresql+asyncpg://...' or 'sqlite+aiosqlite://...'). Install the required async driver: 'pip install asyncpg' for PostgreSQL or 'pip install aiosqlite' for SQLite.

Frequently Asked Questions about EnrichMCP

What is EnrichMCP?

EnrichMCP is a Model Context Protocol (MCP) server that enrichmcp is a python framework for building data driven mcp servers It connects AI assistants to external tools and data sources through a standardized interface.

How do I install EnrichMCP?

Follow the installation instructions on the EnrichMCP GitHub repository. Clone the repo, install dependencies, and add the server config to your AI client.

Which AI clients work with EnrichMCP?

EnrichMCP works with all major MCP-compatible AI clients including Claude Desktop, Claude Code, Cursor, VS Code (GitHub Copilot), Windsurf, and Cline.

Is EnrichMCP free to use?

Yes, EnrichMCP is open source and available under the Apache-2.0 license. You can use it freely in both personal and commercial projects.

Browse More Developer Tools MCP Servers

Explore all developer tools servers available in the MCPgee directory. Each server includes setup guides for Claude, Cursor, and VS Code.

Quick Config Preview

{ "mcpServers": { "enrichmcp": { "command": "npx", "args": ["-y", "enrichmcp"] } } }

Add this to your claude_desktop_config.json or .cursor/mcp.json

Read the full setup guide →

Ready to use EnrichMCP?

Browse our complete directory of 33,000+ MCP servers, read setup guides for your editor, and start building with the Model Context Protocol.

33,000+ ServersFree & Open SourceStep-by-Step Guides