Skip to main content
Glama
IntuzSmitP

Enterprise Knowledge MCP Server

by IntuzSmitP

Enterprise Knowledge MCP Server

MCP server that exposes semantic search + RAG over enterprise documents as standardized tools, so any MCP client (Claude Desktop, etc.) gets read-only, citation-backed access without touching source systems directly.

Connector #1 (local PDF/DOCX/XLSX) is implemented. Embeddings run locally via sentence-transformers — no document text leaves the machine.

Architecture

connector.list_documents()          # SourceDocument objects
        v
ingestion/extractor.py              # per-mime text extraction -> ExtractedSection
        v
ingestion/chunker.py                # sentence-packed chunks w/ overlap -> Chunk
        v
ingestion/embedder.py               # sentence-transformers -> vectors
        v
storage/vector_store.py             # Chroma upsert/query (metadata filtering)
        v
rag/retriever.py (KnowledgeService)  # orchestrates the above; search() + build_rag_context()
        v
server.py                            # FastMCP tools wrapping KnowledgeService

Adding a new source (SharePoint, Confluence, Notion, Google Drive, Slack) means writing one class implementing connectors/base.py::BaseConnector (list_documents, get_document). Nothing downstream changes.

Related MCP server: MCP Knowledge Service

Setup

pip install -r requirements.txt

Drop files into data/raw/ (or point at another directory), then from src/:

from connectors.local_files import LocalFileConnector
from rag.retriever import KnowledgeService

svc = KnowledgeService()
svc.ingest_connector(LocalFileConnector(root_dir="../data/raw"))

Or just run the ingest tool through the MCP server itself once connected.

Running the server

python src/server.py

Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "enterprise-knowledge": {
      "command": "python",
      "args": ["/absolute/path/to/enterprise-knowledge-mcp/src/server.py"]
    }
  }
}

Tools exposed

Tool

Purpose

ingest_local_directory(directory?)

Scan + index PDF/DOCX/XLSX from a directory

search_knowledge(query, top_k?, source_type?, department?, author?)

Semantic search with metadata filters

get_rag_context(query, top_k?, source_type?, department?)

Retrieved chunks + citation markers, ready for an LLM prompt

list_indexed_documents()

All indexed docs + chunk counts

index_stats()

Total indexed chunk count

Metadata schema (per chunk)

doc_id, title, source_type, path_or_uri, section_label, author, department, tags, modified_at, ingested_atsection_label is page number (PDF), heading/table (DOCX), or sheet name (XLSX), so citations point to a specific location, not just a document title.

Config

Environment variables (see src/config.py): EKM_RAW_DIR, EKM_CHROMA_DIR, EKM_COLLECTION, EKM_CHUNK_SIZE, EKM_CHUNK_OVERLAP, EKM_EMBEDDING_MODEL, EKM_TOP_K.

Roadmap (modular connectors, in priority order)

  1. Local files — done.

  2. SharePoint — Microsoft Graph API (/sites/{id}/drive/items), delta queries for incremental sync, app-only auth via client credentials.

  3. Confluence — REST API v2 (/wiki/api/v2/pages), CQL search for incremental sync, API token auth.

  4. Notion — Notion API (/v1/search, block children pagination), integration token auth.

  5. Google Drive — Drive API v3, service account or OAuth, export Google Docs/Sheets as text/csv before extraction.

  6. Slackconversations.history + file downloads, bot token auth, respect channel membership for access control.

Security notes for production

  • Never embed credentials in connector code — use env vars / a secrets manager per connector.

  • Enforce source-level ACLs at query time (filter where clauses by the requesting user's permitted departments/channels), not just at ingest time.

  • Log every search_knowledge / get_rag_context call (query + returned doc_ids) for audit trails.

  • Rate-limit and sandbox connector network calls; SharePoint/Confluence/ Notion/Drive/Slack connectors will need outbound HTTPS to their respective APIs only.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Provides semantic search over markdown documentation using RAG, allowing natural language queries and integration with MCP clients.
    Last updated
    1
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    Enables local document question-answering and retrieval via MCP, supporting multi-turn conversation, intent recognition, and tools for document search, Q&A, and summarization.
    Last updated
    5
  • A
    license
    -
    quality
    C
    maintenance
    Enables MCP-capable AI to perform read-only semantic search over a local document corpus stored in Postgres with pgvector, using mxbai-embed-large embeddings and optional reranking for confidence-gated results.
    Last updated
    MIT

View all related MCP servers

Related MCP Connectors

  • Read-only MCP over an agentic SLR workspace with per-claim citation verification

  • Read-only MCP over an agentic SLR workspace with per-claim citation verification

  • Local-first RAG engine with MCP server for AI agent integration.

View all MCP Connectors

Latest Blog Posts

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/IntuzSmitP/enterprise_knowledge_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server