DIGIT MCP服务器

MCP服务器+数据提供者 数字 eGov平台-- 60个MCP工具 穿过 14组一 共享TypeScript API客户端 (@digit-mcp/data-provider)和a react-admin数据提供者/身份验证提供者 用于构建DIGIT前端。
最初只加载11个工具(core + docs).其余部分通过以下方式按需解锁 enable_tools,因此代理人不会被他们还不需要的选择淹没。
安装
配置MCP客户端的一个命令:
curl -fsSL https://raw.githubusercontent.com/ChakshuGautam/DIGIT-MCP/main/install.sh | bash此自动检测您的客户端(克劳德代码, 光标, 帆板运动, VS Code),连接到托管服务器,并为Claude Code安装指导AI完成DIGIT工作流程的技能。
非交互式
# Remote mode (default) — connects to hosted server, no build needed
curl -fsSL https://raw.githubusercontent.com/ChakshuGautam/DIGIT-MCP/main/install.sh | bash -s -- --client claude-code --mode remote --yes
# Local mode — clones repo, builds, runs via stdio
curl -fsSL https://raw.githubusercontent.com/ChakshuGautam/DIGIT-MCP/main/install.sh | bash -s -- --client cursor --mode local --yes手动配置
Claude Code
添加 ~/.claude.json 或项目 .mcp.json:
{
"mcpServers": {
"DIGIT-MCP": {
"type": "http",
"url": "https://mcp.egov.theflywheel.in/mcp"
}
}
}或者对于本地stdio:
{
"mcpServers": {
"DIGIT-MCP": {
"command": "node",
"args": ["/path/to/DIGIT-MCP/dist/index.js"],
"env": {
"CRS_ENVIRONMENT": "local",
"CRS_USERNAME": "ADMIN",
"CRS_PASSWORD": "eGov@123"
}
}
}
}Cursor / Windsurf / VS Code
添加到MCP设置(.cursor/mcp.json, .windsurf/mcp.json,或VS代码MCP配置):
{
"mcpServers": {
"DIGIT-MCP": {
"url": "https://mcp.egov.theflywheel.in/mcp"
}
}
}命令行界面
这 digit CLI提供与MCP服务器相同的56个工具,由共享工具注册表自动生成。没有每个工具的CLI代码——添加MCP工具会自动添加CLI命令。
安装
npm install -g @chakshu-gautam/digit-mcp --registry=https://npm.pkg.github.com或来源:
git clone https://github.com/ChakshuGautam/DIGIT-MCP.git
cd DIGIT-MCP && npm install && npm run build
npm link # makes `digit` available globally用法
# Authenticate (saved to ~/.config/digit-cli/credentials.json)
digit login --environment chakshu-digit --username ADMIN --password eGov@123
# Search complaints
digit pgr search --tenant-id pg.citya --status RESOLVED
# File a complaint
digit pgr create --tenant-id pg.citya --service-code StreetLightNotWorking \
--description "Broken light on MG Road" \
--address '{"locality":{"code":"LOC_CITYA_1"}}' \
--citizen-name "Ravi Kumar" --citizen-mobile 9876543210
# MDMS search
digit mdms search --tenant-id pg --schema-code common-masters.Department
# Health check
digit health-check
# Output formats
digit pgr search --tenant-id pg.citya --output json # raw JSON (default when piped)
digit pgr search --tenant-id pg.citya --output table # formatted table (default on TTY)
digit pgr search --tenant-id pg.citya --output plain # minimal for scripting指挥结构
digit [flags] # grouped tools
digit [flags] # core tools (top-level)
digit --help # list all groups
digit pgr --help # list pgr commands
digit pgr search --help # show all flags核心工具(configure, health-check, get-environment-info, mdms-get-tenants)是顶级的。所有其他工具均已分组: digit pgr search, digit mdms search, digit boundary validate等等。
快速开始
npm install
npm run build
npm start # stdio transport (default)
npm run start:http # HTTP transport on :3000
npm run cli -- --help # CLI (dev mode, no build needed)码头工人
docker run -p 3000:3000 \
-e CRS_ENVIRONMENT=chakshu-digit \
-e CRS_USERNAME=ADMIN \
-e CRS_PASSWORD=eGov@123 \
ghcr.io/chakshugautam/digit-mcp:latest
# Health check
curl http://localhost:3000/healthzHelm(Kubernetes)
helm install digit-mcp ./helm/digit-mcp \
--set env.CRS_ENVIRONMENT=chakshu-digit \
--set secret.CRS_USERNAME=ADMIN \
--set secret.CRS_PASSWORD=eGov@123看 helm/digit-mcp/values.yaml 对于所有选项。
渐进式披露
服务器从11个工具开始。客服电话 enable_tools 根据需要解锁组:
| 组 | 工具 | 目的 |
|---|---|---|
| 核心 | 8 | 发现、认证、环境、健康检查 |
| 文档 | 3 | 搜索docs.digit.org,获取页面,OpenAPI目录 |
| mdms | 8 | 主数据CRUD、模式管理、租户引导/清理 |
| 边界 | 7 | 边界层次+实体CRUD |
| 大师 | 3 | 验证部门、指定、投诉类型 |
| 员工 | 3 | HRMS员工创建、更新、验证 |
| 本地化 | 2 | 搜索和追加销售UI标签翻译 |
| 孕激素受体 | 6 | PGR投诉+工作流程行动 |
| 管理员 | 7 | 文件存储、访问控制、用户管理 |
| 身份证生成器 | 1 | ID生成 |
| 位置 | 1 | 地理边界(遗留) |
| 加密 | 2 | 加密/解密敏感数据 |
| 监控 | 4 | Kafka延迟、持久器错误、数据库计数 |
| 追踪 | 5 | 分布式跟踪搜索、调试、慢速查询检测 |
完整的工具参考,包括每个工具的文档: docs/api/
常见工作流
通过URL连接到任何DIGIT实例:
configure(base_url="https://my-digit.example.com", username, password) → auto-probes services用PGR建立一个新城市:
configure → tenant_bootstrap → city_setup → employee_create → pgr_create从xlsx文件(CCRS数据加载器格式)设置城市:
configure → city_setup_from_xlsx(tenant_id, masters_file, employee_file, ...)提出投诉并解决:
pgr_create → pgr_update(ASSIGN) → pgr_update(RESOLVE) → pgr_update(RATE)调试失败的API调用:
enable_tools(["tracing"]) → trace_debug → trace_get文档
| 文档 | 描述 |
|---|---|
| 入门指南 | 连接、验证、发现工具 |
| 城市设置 | 引导新租户并端到端设置PGR |
| PGR投诉生命周期 | 创建、分配、解决和评价投诉 |
| 调试与监控 | 跟踪故障,监控持久器运行状况 |
| API Nuances公司 | 已知的DIGIT API怪癖和难题 |
| 构建PGR UI | 构建投诉管理前端的完整指南 |
| 建筑 | 服务器内部、传输、渐进式披露 |
| CLI架构 | 如何从工具注册表自动生成CLI |
| api参考 | 所有60个工具及其参数和示例 |
| OpenAPI规范 | 可机调API规范 |
数据提供者(@digit-mcp/data-provider)
用于构建DIGIT前端的共享TypeScript包。住在 packages/data-provider/.
安装
npm install @digit-mcp/data-providerAPI客户端
独立的DIGIT API客户端,提供45多种方法,涵盖所有平台服务:
import { DigitApiClient } from '@digit-mcp/data-provider/client';
const client = new DigitApiClient({
url: 'https://my-digit-instance.example.com',
stateTenantId: 'pg',
});
await client.login('ADMIN', 'eGov@123', 'pg');
// MDMS
const departments = await client.mdmsSearch('pg', 'common-masters.Department');
// PGR
const complaints = await client.pgrSearch('pg.citya', { status: 'PENDINGASSIGNMENT' });
// HRMS
const employees = await client.employeeSearch('pg.citya', { limit: 100 });
// Boundaries, workflow, localization, filestore, idgen, encryption, access control...服务范围: 用户、MDMS v2、HRMS、边界(实体+层次结构+管理)、PGR、本地化、工作流、访问控制、IDGen、文件存储、加密、收件箱。
内置重试逻辑(429/503,具有指数回退)、端点覆盖和多租户解析。
React管理员数据提供者
插入 DataProvider 和 AuthProvider 为了 反应管理员:
import { DigitApiClient } from '@digit-mcp/data-provider/client';
import { createDigitDataProvider, createDigitAuthProvider } from '@digit-mcp/data-provider';
const client = new DigitApiClient({ url: 'https://...', stateTenantId: 'pg' });
const dataProvider = createDigitDataProvider(client, 'pg.citya');
const authProvider = createDigitAuthProvider(client);
// Use with react-admin
13专用资源 开箱即用:租户、部门、指定、投诉类型、员工、边界、投诉、本地化、用户、工作流业务服务、工作流流程、访问角色、访问操作。
17种通用MDMS资源 自动映射:州信息、品牌、城市模块、id格式、角色动作等。
智能功能:
- 当根租户未返回结果时,自动搜索城市子租户
- 使用父指针将边界层次结构展开为平面列表
- 处理PGR工作流状态转换(分配、解决、拒绝、重新打开、速率)
- MDMS
uniqueIdentifiergetOne查找的快速路径
资源注册表
以编程方式查询可用资源:
import { getAllResources, getDedicatedResources, getResourceBySchema } from '@digit-mcp/data-provider';
getAllResources(); // all 30 resource configs
getDedicatedResources(); // 13 first-class resources
getResourceBySchema('RAINMAKER-PGR.ServiceDefs'); // → complaint-types config环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
MCP_TRANSPORT | stdio | stdio 或 http |
MCP_PORT | 3000 | HTTP端口(仅限HTTP模式) |
CRS_ENVIRONMENT | chakshu-digit | 环境密钥 |
CRS_USERNAME | -- | DIGIT管理员用户名 |
CRS_PASSWORD | -- | DIGIT管理员密码 |
CRS_TENANT_ID | 从env配置 | 租户进行身份验证 |
MCP_ENABLE_ALL_GROUPS | -- | 设置为 1 启动时启用所有工具组 |
环境
| 关键字 | URL | 州租户 |
|---|---|---|
chakshu-digit | https://chakshu-digit.egov.theflywheel.in | statea |
dev | https://unified-dev.digit.org | statea |
local | http://0.0.0.0:18000 | pg |
测试
# MCP server
npm test # Quick validator tests
npm run test:safety # Agent safety tests (53 tests)
npm run test:full # Full integration suite (130 tests, 100% tool coverage)
npm run test:e2e # E2E new-tenant test
npm run test:openapi # Validate OpenAPI spec against live APIs
npx tsx test-xlsx-reader.ts # xlsx-reader unit tests (12 tests)
# Data provider
cd packages/data-provider
npm test # Unit tests (client, registry, providers)
npm run test:integration # Integration tests against live DIGIT API建筑
src/
├── index.ts # MCP entry point (dual transport: stdio / HTTP)
├── cli.ts # CLI entry point (Commander.js, auto-generated commands)
├── cli/
│ ├── adapter.ts # JSON Schema → Commander.js option mapper
│ ├── formatter.ts # json / table / plain output formatting
│ └── auth.ts # Credential persistence (~/.config/digit-cli/)
├── server.ts # MCP server with listChanged notifications
├── types/ # Shared types, ToolGroup, MDMS schema constants
├── config/
│ ├── environments.ts # Named environment configs
│ └── endpoints.ts # DIGIT API endpoint paths
├── services/
│ ├── digit-api.ts # DIGIT API client (auth, multi-tenant, all services)
│ ├── session-store.ts # PostgreSQL session tracking
│ └── telemetry.ts # Matomo analytics
├── tools/ # 60 tools across 16 registration files
│ ├── registry.ts # ToolRegistry (group enable/disable lifecycle)
│ └── index.ts # registerAllTools() aggregator
├── utils/
│ ├── validation.ts # Input validation (tenant IDs, mobile, control chars)
│ ├── sanitize.ts # Response sanitization (prompt injection defense)
│ ├── field-mask.ts # Field projection for search results
│ ├── probe.ts # Service availability probing for ad-hoc environments
│ ├── xlsx-reader.ts # xlsx sheet parsing (CCRS dataloader format)
│ └── xlsx-loader.ts # 4-phase xlsx setup orchestrator
packages/
└── data-provider/ # @digit-mcp/data-provider
└── src/
├── client/ # DigitApiClient — standalone DIGIT API client (45+ methods)
│ ├── DigitApiClient.ts
│ ├── endpoints.ts
│ ├── errors.ts
│ └── types.ts
└── providers/ # react-admin integration
├── dataProvider.ts # DataProvider (CRUD for 30 resources)
├── authProvider.ts # AuthProvider (OAuth2 session)
└── resourceRegistry.ts # Resource config registry
docs/
├── api/ # Per-tool API reference
├── guides/ # 5 walkthrough guides
├── architecture.md # Server design and internals
├── ui.md # PGR frontend development guide
└── openapi.yaml # OpenAPI 3.0 specification
skills/ # Claude Code skills for guided DIGIT workflows
helm/digit-mcp/ # Helm chart for Kubernetes