Enterprise MCP Server
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.
It is designed to integrate with enterprise RAG platforms, AI agent systems, and other MCP-compatible clients and services.
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 --reloadOpen:
MCP endpoint:
http://localhost:8000/mcp/Health:
http://localhost:8000/health/readyAPI documentation:
http://localhost:8000/docsMetrics:
http://localhost:8000/metrics
Docker
docker compose up --buildThe 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/eventsMCP 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 |
| List authorized capabilities | discovery filtered by policy |
| Search enterprise knowledge | bounded results and citations |
| Query a named SQL connection | parsed SELECT-only and row limits |
| Call a named REST operation | no arbitrary URLs |
| Search an approved root | canonical root confinement |
| Read a bounded text range | size/range/path checks |
| 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-covRepository 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 fixturesRoadmap
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Kishan960615/enterprise-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server