eunomia-mcp-server
Eunomia MCP Server is an extension of the Eunomia framework that connects Eunomia instruments with MCP servers. It provides a simple way to orchestrate data governance policies (like PII detection or user access control) and seamlessly integrate them with external server processes in the MCP ecosystem.
[!WARNING] This MCP server is deprecated as it is not compatible with the latest developments of Eunomia. A new MCP integration is under development and will be available soon.
Eunomia MCP Server
Open Source Data Governance for LLM-based Applications — with MCP integration
Made with ❤ by the team at What About You.
Overview
Eunomia MCP Server is an extension of the Eunomia framework that connects Eunomia instruments with MCP servers. It provides a simple way to orchestrate data governance policies (like PII detection or user access control) and seamlessly integrate them with external server processes in the MCP ecosystem.
With Eunomia MCP Server, you can:
- Enforce data governance on top of LLM or other text-based pipelines.
- Orchestrate multiple servers that communicate via the MCP framework.
Get Started
Installation
git clone https://github.com/whataboutyou-ai/eunomia-mcp-server.git
Basic Usage
Eunomia MCP Server uses the same "instrument" concept as Eunomia. By defining your set of instruments in an Orchestra, you can apply data governance policies to text streams that flow through your MCP-based servers.
Below is a simplified example of how to define application settings and run the MCP server with uv.
"""
Example Settings for MCP Orchestra Server
=========================================
This example shows how we can combine Eunomia with a web-browser-mcp-server
(https://github.com/blazickjp/web-browser-mcp-server).
"""
from pydantic_settings import BaseSettings
from pydantic import ConfigDict
from eunomia.orchestra import Orchestra
from eunomia.instruments import IdbacInstrument, PiiInstrument
class Settings(BaseSettings):
"""
Application settings class for MCP orchestra server using pydantic_settings.
Attributes:
APP_NAME (str): Name of the application
APP_VERSION (str): Current version of the application
LOG_LEVEL (str): Logging level (default: "info")
MCP_SERVERS (dict): Servers to be connected
ORCHESTRA (Orchestra): Orchestra class from Eunomia to define data governance policies
"""
APP_NAME: str = "mcp-server_orchestra"
APP_VERSION: str = "0.1.0"
LOG_LEVEL: str = "info"
MCP_SERVERS: dict = {
"web-browser-mcp-server": {
"command": "uv",
"args": [
"tool",
"run",
"web-browser-mcp-server"
],
"env": {
"REQUEST_TIMEOUT": "30"
}
}
}
ORCHESTRA: Orchestra = Orchestra(
instruments=[
PiiInstrument(entities=["EMAIL_ADDRESS", "PERSON"], edit_mode="replace"),
# You can add more instruments here
# e.g., IdbacInstrument(), etc.
]
)
Running the Server
Once your settings are defined, you can run the MCP Orchestra server by pointing uv to the directory containing your server code, for example:
uv --directory "path/to/server/" run orchestra_server
This will:
- Load the settings from
.envor environment variables. - Launch the Eunomia MCP Server to handle requests and orchestrate your external MCP server(s).
- Apply Eunomia instruments (like
PiiInstrument) to the incoming text, ensuring data governance policies are automatically enforced.
Further Reading
For more detailed usage, advanced configuration, and additional instruments, check out the following resources:
- Eunomia Documentation: Learn more about the core Eunomia framework.
- Eunomia Repository: See Eunomia source code and examples.
- MCP Documentation: Explore the Model Context Protocol specification and ecosystem.
Recommend MCP Servers 💡
mem0-mcp
This demonstrates a structured approach for using an MCP server with mem0 to manage coding preferences efficiently. The server can be used with Cursor and provides essential tools for storing, retrieving, and searching coding preferences.
prompthouse-mcp
A Model Context Protocol (MCP) server that connects your personal PromptHouse prompt library to AI clients like Claude Desktop, enabling programmatic access and management of prompts.
mcp_zoomeye
A Model Context Protocol server that provides network asset information based on query conditions. This server allows LLMs to obtain network asset information and supports querying network asset information by zoomeye dork etc.
NearbySearch
An MCP server for nearby place searches with IP-based location detection.
pentest-mcp
An MCP server that integrates Kali Linux security tools like Nmap and Gobuster, allowing users to perform penetration tests using natural language via LLMs like Claude.
@suekou/mcp-notion-server
MCP Server for the Notion API, enabling LLM to interact with Notion workspaces. Additionally, it employs Markdown conversion to reduce context size when communicating with LLMs, optimizing token usage and making interactions more efficient.