数据库协议服务器

NovaDB MCP Server是一个基于Model Context Protocol的服务器,为NovaDB内容管理和数据索引系统提供AI助手交互接口,支持内容管理、对象类型、属性、表单、分支、评论、文件、任务和索引数据的管理。

  • by novadb
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 novadb/novadb-mcp-demo

使用说明

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类型定义