Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Assinatura eletrônica no Brasil (ICP-Brasil): envie, assine e verifique com sua conta SignDocs.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
SIGNDOCS_CLIENT_ID, SIGNDOCS_CLIENT_SECRET, SIGNDOCS_ENVIRONMENT, X-SignDocs-Client-Id, X-SignDocs-Client-Secret标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"signdocs": {
"command": "npx",
"args": [
"-y",
"@signdocs-brasil/mcp-server"
],
"env": {
"SIGNDOCS_CLIENT_ID": "your-value",
"SIGNDOCS_CLIENT_SECRET": "your-value",
"SIGNDOCS_ENVIRONMENT": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add --transport http signdocs https://mcp.signdocs.com.br/mcp --header 'X-SignDocs-Client-Id: your-value' --header 'X-SignDocs-Client-Secret: your-value'claude mcp add signdocs --env SIGNDOCS_CLIENT_ID=your-value --env SIGNDOCS_CLIENT_SECRET=your-value --env SIGNDOCS_ENVIRONMENT=your-value -- npx -y @signdocs-brasil/mcp-server运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"signdocs": {
"url": "https://mcp.signdocs.com.br/mcp",
"headers": {
"X-SignDocs-Client-Id": "your-value",
"X-SignDocs-Client-Secret": "your-value"
}
}
}
}粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"signdocs": {
"command": "npx",
"args": [
"-y",
"@signdocs-brasil/mcp-server"
],
"env": {
"SIGNDOCS_CLIENT_ID": "your-value",
"SIGNDOCS_CLIENT_SECRET": "your-value",
"SIGNDOCS_ENVIRONMENT": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"signdocs": {
"type": "http",
"url": "https://mcp.signdocs.com.br/mcp",
"headers": {
"X-SignDocs-Client-Id": "your-value",
"X-SignDocs-Client-Secret": "your-value"
}
}
}
}粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"signdocs": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@signdocs-brasil/mcp-server"
],
"env": {
"SIGNDOCS_CLIENT_ID": "your-value",
"SIGNDOCS_CLIENT_SECRET": "your-value",
"SIGNDOCS_ENVIRONMENT": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。
你的选择通过 Cookie 保存在这台设备上,无需账户。
SIGNDOCS_ENVIRONMENT envX-SignDocs-Client-Id HTTP headerX-SignDocs-Client-Secret 机密 HTTP header这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过域名 signdocs.com.br 验证(注册中心会核实域名所有权)
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:SIGNDOCS_CLIENT_ID, SIGNDOCS_CLIENT_SECRET, X-SignDocs-Client-Secret
两种方式都可以:安装在你的电脑上,或者连接云端版本。
GitHub 仓库最后更新于–,最新版本(0.11.0)于2个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Signoff
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Five gates that make an agent's 'done' provable: run them, read the verdict, audit the record.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
A Model Context Protocol server for the SignDocs Brasil e-signature API. It lets MCP-capable AI clients (Claude Desktop, Claude Code, Cursor, …) create signing sessions, manage multi-signer envelopes, upload/download documents, verify signatures, and manage webhooks — the same action catalog as the official n8n, Zapier, and Make.com integrations.
It is a thin adapter over the official @signdocs-brasil/api SDK, which owns OAuth2 token exchange, caching, retries, and error handling.
npm install -g @signdocs-brasil/mcp-server # or run on demand with npx
Create an API credential in the SignDocs dashboard (app.signdocs.com.br → API) and expose it as environment variables:
| Variable | Required | Default | Notes |
|---|---|---|---|
SIGNDOCS_CLIENT_ID | yes | — | OAuth2 client id |
SIGNDOCS_CLIENT_SECRET | yes | — | OAuth2 client secret |
SIGNDOCS_ENVIRONMENT | no | hml | hml (staging) or production |
SIGNDOCS_BASE_URL | no | derived | override the resolved base URL |
SIGNDOCS_SCOPES | no | full set | space-separated scope override |
Start in
hml. HML data expires after ~7 days and is safe for testing.
Switch to
productiononly when you intend to create real, legally-binding
signatures.
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": { "signdocs": { "command": "npx", "args": ["-y", "@signdocs-brasil/mcp-server"], "env": { "SIGNDOCS_CLIENT_ID": "your_client_id", "SIGNDOCS_CLIENT_SECRET": "your_client_secret", "SIGNDOCS_ENVIRONMENT": "hml" } } } }
Claude Code:
claude mcp add signdocs \
-e SIGNDOCS_CLIENT_ID=your_client_id \ -e SIGNDOCS_CLIENT_SECRET=your_client_secret \ -e SIGNDOCS_ENVIRONMENT=hml \ -- npx -y @signdocs-brasil/mcp-server
| Tool | Action | Safety |
|---|---|---|
create_signing_session | Create single-signer session, returns signingUrl | ⚠️ binding + quota |
get_signing_session_status | Poll session status | read |
get_signing_session | Full session bootstrap | read |
list_signing_sessions | List by status | read |
cancel_signing_session | Cancel a session | ⚠️ irreversible |
resend_signing_session_otp | Resend OTP | write |
create_envelope | Multi-signer envelope | ⚠️ binding + quota |
get_envelope | Envelope details | read |
add_session_to_envelope | Add a signer, returns signingUrl | ⚠️ binding + quota |
get_envelope_combined_stamp | Combined stamped PDF URL | read |
upload_document | Attach a PDF to a transaction | write |
download_document | Presigned download URLs | read |
list_transactions | Search/list transactions | read |
get_transaction | Transaction details | read |
cancel_transaction | Cancel a transaction | ⚠️ irreversible |
get_evidence | Cryptographic evidence | read |
verify_evidence | Public evidence verification | read |
verify_envelope | Public envelope verification | read |
verify_document | Detect signatures in a PDF | ⚠️ PROD-only + quota |
register_webhook / list_webhooks / delete_webhook / test_webhook | Webhook management | mixed |
⚠️ tools carry destructiveHint annotations and a warning in their description so compliant clients prompt the human before invoking them. Annotations are only hints — review your client's auto-approval settings.
Trust sessions (/v1/trust-sessions) and resend-invite are not in @signdocs-brasil/api v1.6.1 yet; they'll be added when the SDK supports them. Digital ICP-Brasil A1 signing runs through the lower-level transaction/advance flow rather than a hosted-session profile.
The server exposes grounding resources the model can read on demand:
signdocs://quickstart — the minimal signing flow + safety notessigndocs://policy-profiles — valid policyProfile values and CUSTOM stepssigndocs://webhook-events — all subscribable event typesThe same tools are also served over Streamable HTTP so a single deployment can serve many AI agents/tenants — each authenticates per session with its own SignDocs credentials (no shared secret baked into the server).
npm run start:http # or: signdocs-mcp-http (listens on PORT, default 3000)
docker build -t signdocs-mcp . && docker run -p 3000:3000 signdocs-mcp
Endpoint: POST /mcp (Streamable HTTP). Auth is required on the MCP initialize request, via the Authorization header:
Authorization: Bearer — a SignDocs OAuth2 access token (from /oauth2/token), passed straight through to the API.Authorization: Basic base64(clientId:clientSecret) — the server runs the client_credentials exchange for you.X-SignDocs-Client-Id + X-SignDocs-Client-Secret — the same client credentials as two plain headers (no base64), for header-only clients that can't transform values.Pick the environment per session with X-SignDocs-Environment: hml|production (defaults to the server's configured default).
The server behaves as an OAuth 2.0 Resource Server: it serves GET /.well-known/oauth-protected-resource (RFC 9728, pointing at the SignDocs authorization server) and answers an unauthenticated initialize with 401 + WWW-Authenticate. The SignDocs API remains the authoritative token validator. GET /healthz is an unauthenticated health probe.
Example client config (Bearer):
{
"mcpServers": { "signdocs-remote": { "type": "http", "url": "https://your-host.example/mcp", "headers": { "Authorization": "Bearer ", "X-SignDocs-Environment": "hml" } } } }
Server env vars: PORT, HOST, SIGNDOCS_ENVIRONMENT (default env), MCP_PUBLIC_URL (for resource metadata behind a proxy), MCP_CORS_ORIGIN, MCP_DNS_REBINDING_PROTECTION=true + MCP_ALLOWED_HOSTS / MCP_ALLOWED_ORIGINS (recommended in production).
Sessions are held in process memory, so run a single instance or use sticky
routing. For multi-instance/serverless, front it with sticky sessions or swap
the session map for a shared store + EventStore (resumability). Deploying onto
the existing
external-apiLambda + API Gateway as a NestedStack is the
intended production path.
For serverless hosting, @signdocs-brasil/mcp-server/lambda exports createLambdaHandler — an API Gateway HTTP API v2 handler that runs the MCP transport statelessly (one server per invocation, no session store), with the same Bearer/Basic auth. SignDocs hosts this on mcp-hml.signdocs.com.br / mcp.signdocs.com.br.
import { createLambdaHandler } from '@signdocs-brasil/mcp-server/lambda';
export const handler = createLambdaHandler({ defaultEnvironment: 'hml' });
npm install
npm run build # tsc → dist/ npm test # vitest (pure unit tests, no network) npm run inspect # build + launch MCP Inspector against the stdio server
external-api (Lambda + API Gateway NestedStack); optional edge JWT validation + shared-store sessions for horizontal scale.