neuphlo-mcp
MCP server for a Markdown-backed knowledge repository, offering tools for searching, retrieving, validating, and authoring records, plus MCP Apps that render dashboards and inline tables in compatible clients.
README
Neuphlo MCP Template
Current release: 0.1.0. See the changelog for the release scope.
The Neuphlo starter repository for building modern Model Context Protocol servers with:
- MCP SDK V2 and the
2026-07-28protocol revision; - Streamable HTTP with stateless legacy compatibility;
- MCP Apps that render inline tables and dashboards in compatible hosts;
- Docker and Docker Compose setup;
- Markdown-backed example resources and write tools;
- normalized connector examples for Intercom, HubSpot, Chargebee, and future sources;
- validation, tests, health checks, and a smoke client.
The included signals, insights, decisions, initiatives, releases, and briefs form an opinionated example module. Replace or simplify them when adapting the starter to another domain.
Start with Customizing the Neuphlo MCP Template. The focused references cover the starter blueprint, MCP UI authoring, MCP App architecture, and connector architecture.
Quick start
cp .env.example .env
docker compose up --build
Choose the name shown to users by editing .env:
MCP_APP_NAME=Your Application Name
Choose where Markdown is stored on the host:
MCP_CONTENT_DIR=./content
This can be a repository-relative or absolute directory. Docker mounts it at /data/content; the server then routes each record type to its designated subfolder. See the content placement guide before adding or generating records.
For a clean slate, set MCP_CONTENT_DIR to a new empty directory. The server creates the expected folder structure automatically while leaving the included examples available for reference. The content placement guide also explains how to remove only the sample records when retaining the default directory.
Then apply it with docker compose up -d. No source-code rename is required. The npm package and MCP server retain the technical starter identity, while the diagnostic page, MCP resource title, dashboard, and inline table use MCP_APP_NAME.
- MCP endpoint:
http://localhost:3000/mcp - Health endpoint:
http://localhost:3000/healthz - Browser diagnostic:
http://localhost:3000/mcp
Compose exposes the service on localhost and bind-mounts content/, so rebuilding does not remove Markdown records.
Verify modern protocol negotiation, tool discovery, and repository validation:
npm install
npm run smoke
Stop the stack with docker compose down. For development without Docker, run npm install followed by npm run dev.
The server reads .env itself, so npm run dev and npm start pick up the same file Compose uses. Real environment variables take precedence over the file, and MCP_ENV_FILE points at a different one.
Bearer token authentication
Set NEUPHLO_MCP_AUTH_TOKEN to require Authorization: Bearer <token> on every route. Unauthenticated requests get a 401 with a WWW-Authenticate header, and the token is compared as a SHA-256 digest so the check does not leak length or content through timing.
/healthz is the one exception, and only from loopback: the container health check reaches it over 127.0.0.1 inside the container, while proxied and published traffic arrives from the bridge network and still needs the token. An exposed deployment therefore reveals nothing through the health endpoint.
openssl rand -hex 32
Leave the variable empty and the server accepts every request, which is only appropriate for a loopback-bound development run. Set it before putting the endpoint on any network. npm run smoke reads the same variable and sends the header for you.
A single shared token authenticates the caller but says nothing about which records they may read. Per-user identity and record-level authorization still have to be added before real data goes in.
Starter capabilities
- MCP Apps:
open_neuphlo_dashboardreturns the example dashboard andshow_knowledge_tablereturns a result-specific inline table. - Resources: bundled MCP App HTML, Markdown index, individual records, and connector catalog.
- Read tools:
search_knowledge,get_record,validate_repository, andbuild_brief. - Write tools:
submit_signaland idempotentimport_connector_events. - Prompt:
triage-signals. - Storage: human-readable Markdown with YAML frontmatter.
Clients without MCP Apps support receive ordinary text and structured JSON results. The UI is bundled into one self-contained HTML resource with no separate web server or external scripts.
Repository layout
app/ MCP App source
content/ Example Markdown records and templates
docs/ Architecture and customization guidance
scripts/ Smoke client
src/ MCP server and Markdown repository
test/ Protocol and repository tests
Dockerfile Production image
compose.yaml Local starter stack
Customize the starter
- Set
MCP_APP_NAMEfor user-facing branding; change protocol identifiers insrc/server.tsonly if your integration requires it. - Replace the example record types and templates under
content/. - Adapt the MCP App in
app/to the structured results your tools return. - Remove unused connector descriptors or add isolated adapter services.
- Add authentication and server-side authorization before importing real data.
- Prefer proposal/review writes or
NEUPHLO_MCP_WRITE_MODE=readonlyin shared environments.
The example content workflow uses stable IDs, ownership, review dates, audiences, domains, and sensitivity metadata to demonstrate patterns—not to prescribe a universal information model.
For step-by-step instructions on changing the existing HTML or adding a new inline table, card, chart, or dedicated ui:// resource, see Authoring MCP UI Views.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。