Enterprise MCP Server
A secure, multi-tenant Model Context Protocol server that gives AI clients controlled access to enterprise knowledge bases, SQL databases, REST APIs, files, and GitHub.
README
Enterprise MCP Server
A secure, multi-tenant Model Context Protocol server that gives AI clients controlled access to enterprise knowledge bases, SQL databases, REST APIs, files, and GitHub.
This is Project 3 in the Techne AI OSS portfolio and is designed to integrate with the Enterprise RAG Platform and Enterprise AI Agent Platform.
What it demonstrates
- MCP tools, resources, and prompts over Streamable HTTP or stdio
- Authorization-filtered capability discovery and default-deny policies
- Enterprise RAG search with citations
- Parsed, bounded, read-only SQL
- Allowlisted REST operations
- Root-confined file search and reads
- Allowlisted GitHub file access at revisions
- Tenant-scoped, hash-chained audit records
- Typed plugin/registry contracts
- Health, metrics, Docker, CI, and adversarial tests
Architecture
flowchart LR
C["MCP clients<br/>Agents, Codex, IDEs"] --> T["HTTP / stdio"]
T --> A["Authentication"]
A --> P["Policy engine"]
P --> R["Capability registry"]
R --> X["Bounded executor"]
X --> KB["Knowledge/RAG"]
X --> SQL["Read-only SQL"]
X --> API["Allowlisted REST"]
X --> FS["Confined files"]
X --> GH["GitHub"]
X --> AU[("Audit store")]
Quick start
Local Python
cp .env.example .env
uv sync --all-groups
uv run uvicorn enterprise_mcp.app:create_app --factory --reload
Open:
- MCP endpoint:
http://localhost:8000/mcp/ - Health:
http://localhost:8000/health/ready - API documentation:
http://localhost:8000/docs - Metrics:
http://localhost:8000/metrics
Docker
docker compose up --build
The Compose demo includes PostgreSQL, Redis, the MCP server, a synthetic REST/knowledge service, and confined sample files. It does not require paid credentials.
The container endpoint is published at http://localhost:8013 so it can run beside the other portfolio projects.
Try the operational API
Development mode uses an explicit synthetic principal:
curl http://localhost:8000/api/v1/capabilities
curl http://localhost:8000/api/v1/audit/events
MCP client configuration
{
"mcpServers": {
"enterprise": {
"url": "http://localhost:8000/mcp/"
}
}
}
Development mode is intentionally convenient. Production configuration refuses to start without OIDC settings and PostgreSQL.
Built-in tools
| Tool | Purpose | Safety boundary |
|---|---|---|
system.capabilities |
List authorized capabilities | discovery filtered by policy |
knowledge.search |
Search enterprise knowledge | bounded results and citations |
sql.query |
Query a named SQL connection | parsed SELECT-only and row limits |
rest.request |
Call a named REST operation | no arbitrary URLs |
files.search |
Search an approved root | canonical root confinement |
files.read |
Read a bounded text range | size/range/path checks |
github.get_file |
Read an allowlisted repo file | repository allowlist and revision |
Security model
- Verified identity creates tenant context; callers cannot supply a tenant argument.
- Capability discovery and invocation both enforce policy.
- R3/R4 operations cannot execute without an approval design; v1 tools are read-only.
- Arguments are fingerprinted for audit rather than stored raw.
- SQL, URL, file, result-size, timeout, and repository boundaries are independently enforced.
- Production rejects development authentication, SQLite, and wildcard CORS.
Read SECURITY.md and docs/ARCHITECTURE.md for details.
Development
make lint
make typecheck
make test-cov
Repository layout
src/enterprise_mcp/ application, MCP, security, connectors
tests/ unit, integration, MCP, security tests
docs/ architecture, APIs, tool registry, implementation plan
deploy/ deployment assets
demo-data/ synthetic public fixtures
Roadmap
- v0.1: protocol, connectors, policy, audit, Compose demo
- v0.2: persistent RBAC/connector administration and API keys
- v0.3: GitHub App installation authentication and plugin entry-point loader
- v0.4: OpenTelemetry collector and Kubernetes reference deployment
- v1.0: stable contracts, two-client compatibility, signed images and SBOM
License
Apache-2.0
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.