NovaDB MCP服务器
用于NovaDB CMS和Index API的MCP(模型上下文协议)服务器,使AI助手能够与NovaDB内容管理和数据索引系统进行交互。
概述
该服务器通过模型上下文协议为NovaDB的核心功能提供了一个全面的接口。它公开了用于管理内容、对象类型、属性、表单、分支、注释、文件、作业和索引数据的工具。
特性
- CMS API集成:直接访问NovaDB CMS操作(对象、分支、注释、文件、作业)
- API集成索引:功能齐全的数据索引、搜索和检索
安装
npm install配置
设置以下环境变量:
| 变量 | 描述 | 必填 |
|---|---|---|
NOVA_HOST | NovaDB实例的基本URL(自动前缀为 https:// 如果缺失) | 是 |
NOVA_CMS_USER | CMS API身份验证的用户名 | 是 |
NOVA_CMS_PASSWORD | CMS API认证密码 | 是 |
NOVA_INDEX_USER | 索引API身份验证的用户名 | 是 |
NOVA_INDEX_PASSWORD | 索引API身份验证的密码 | 是 |
示例
export NOVA_HOST="novadb.example.com"
export NOVA_CMS_USER="cms_user"
export NOVA_CMS_PASSWORD="cms_password"
export NOVA_INDEX_USER="index_user"
export NOVA_INDEX_PASSWORD="index_password"发展
构建
npm run build编译TypeScript源文件 src/ 到 dist/.
开始
npm start使用tsx(stdio传输)运行MCP服务器。
测试
npm test # Run all tests (vitest)
npm run test:watch # Watch mode测试是集成测试,需要 NOVA_* 环境变量。当变量缺失时,它们会优雅地跳过。
构建包装
npm run build:ext # Build Claude extension (.mcpb)项目结构
novadb-mcp/
├── src/
│ ├── index.ts # Entry point — registers tools, connects StdioTransport
│ ├── http-client.ts # ApiClient class (Basic Auth, GET/POST/PATCH/DELETE)
│ ├── cms-api/
│ │ ├── client.ts # CMS API client — typed methods + interfaces
│ │ └── tools.ts # All CMS tool registrations
│ └── index-api/
│ ├── client.ts # Index API client — search, count, suggestions
│ └── tools.ts # All Index tool registrations
├── tests/
│ ├── setup.ts # Shared test setup and environment validation
│ ├── http-client.test.ts
│ ├── cms-api/client/ # CMS API integration tests
│ ├── index-api/client/ # Index API integration tests
│ └── fixtures/ # Shared test context, constants, helpers
├── scripts/ # Build scripts for extension packaging
│ └── template/ # Extension template assets (manifest, icon)
├── docs/
│ ├── openapi-cms.json # CMS API OpenAPI spec
│ └── openapi-index.json # Index API OpenAPI spec
├── .claude/ # Claude Code configuration and rules
├── tsconfig.json
├── vitest.config.ts
└── package.json建筑
API客户端
- Api客户端 (
src/http-client.ts):带Basic Auth的基本HTTP客户端,支持GET/POST/PATCH/DELETE和FormData上传 - CMS客户端 (
src/cms-api/client.ts):对象、分支、注释、文件、作业和代码生成的类型化方法 - 索引客户端 (
src/index-api/client.ts):搜索、计数、出现次数、建议和评论搜索
工具模块
所有MCP工具都注册在两个模块中:
- CMS工具 (
src/cms-api/tools.ts):对象CRUD、分支、注释、文件、作业、代码生成 - 索引工具 (
src/index-api/tools.ts):对象搜索/计数/出现次数、建议、评论搜索/计数、工作项
依赖项
@modelcontextprotocol/sdk--MCP协议实现typescript--TypeScript编译器tsx--TypeScript开发执行器vitest--测试框架@types/node--Node.js类型定义
