sources-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sources-mcpShow me the call records from yesterday."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
sources-mcp
Read-only MCP server that exposes the Eingin homelab's data sources to the self-hosted
Cloudflare OS instance at cfos.eingin.dev.
Three sources, each a group of tools:
Source id | Data | Backing |
| the work laptop's documents | Syncthing → ZFS |
| one Microsoft 365 mailbox | Microsoft Graph, app-only client credentials |
| VoIPline call records | daily CSV report emailed to that mailbox, ingested into SQLite |
Everything is read-only. There is no write path in the code: no tool moves, deletes, sends
or uploads anything, and the file corpus is mounted ReadOnlyPaths under systemd so the
guarantee does not depend on the tool list being right.
Why it looks like this
Cloudflare OS connects to external services through gatekeepers. Rather than writing three
gatekeepers in a fork of an early-access repo, this server implements the contract its
upstream gatekeeper-mcp-portal connector already speaks, so the cfos checkout stays
unpatched:
one MCP Streamable-HTTP endpoint,
POST /mcp, stateless, plain JSON responses;a tool literally named
portal_list_servers, which is what marks an endpoint as a portal;every other tool named
<sourceId>_<tool>— membership is decided by splitting at the first underscore, so a source id may not contain one andportalis reserved;annotations.readOnlyHint: trueon every tool, which is what makes a call an observation rather than an approval-gated action;a static bearer token (
MCP_PORTAL_AUTH=token), checked here and again by Caddy in front.
src/portal.ts documents the rest of the contract, with citations into the cfos source it
was derived from. The full design, including what was rejected and why, lives in
homelab-iac/docs/plans/2026-08-13-cfos-data-sources.md.
Related MCP server: confluence-http-api-mcp
Running
Node 24, run straight from TypeScript (native type stripping — no build step):
pnpm install
pnpm typecheck
pnpm test
node src/index.ts # the service
node src/ingest.ts # the daily VoIPline report ingester (systemd timer)Configuration is environment-only; see src/config.ts. A source is registered only when its
configuration is present, so the service is deployable before the Entra app registration
exists or the first report has arrived — it simply serves fewer sources.
Variable | Purpose |
| bearer token required on every request (≥32 chars) |
| listener; the deployment binds the container address |
| corpus root, e.g. |
| app-only Graph credential and the single mailbox it may read; all four or none |
| SQLite file for call records |
| mail folder the CSV reports are filed into |
| optional JSON |
Deployment (LXC container, systemd, nftables, Caddy) is ansible/sources.yml in the
homelab-iac repository.
This server cannot be installed
Maintenance
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
- AlicenseBqualityCmaintenanceRead-only Cloudflare MCP server for SOC investigation, exposing Cloudflare services like WAF, bot management, analytics, and Zero Trust for querying and discovery.32MIT
- AlicenseAqualityCmaintenanceRead-only MCP server for self-hosted Confluence that lets AI agents search pages, fetch content, and navigate page trees via the REST API.57MIT
- FlicenseAqualityCmaintenanceA read-only MCP server that enables AI assistants to search files, list directories, retrieve system info, and get file metadata on the local file system.4
- AlicenseAqualityAmaintenanceRead-only MCP server that lets AI clients query DMS repositories through a local bridge, supporting tools for health checks, listing connections and items, retrieving item info, and reading documents. Credentials are handled securely via a separate broker.7MIT
Related MCP Connectors
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
MCP server for AgentDocs (agentdocs.eu): read, search, write, comment on & share Markdown docs.
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/Eingin/sources-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server