DocuSign MCP服务器
版本: 1.0.0 平台: 代理分类账 状态: 生产准备就绪(待进行API实际测试)
用于DocuSign电子签名和协议管理的模型上下文协议(MCP)服务器。使用官方DocuSign eSignature REST API为AgentLedger平台构建。
概述
此MCP服务器使AI代理能够与DocuSign的电子签名平台进行交互,使他们能够发送文档进行签名、跟踪信封状态、管理模板并处理完整的文档签名工作流程。
身份验证模式
图案: OAuth 2.0(直接访问令牌)
令牌格式
accessToken: "eyJ0eXAiOiJNVCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiNjgxODVmZjEtNG..."如何获取代币:
- 创建DocuSign开发人员帐户(免费):https://developers.docusign.com/
- 创建集成密钥(客户端ID)
- 使用OAuth 2.0授权码授予获取访问令牌
- 平台处理OAuth流,MCP服务器接收访问令牌
令牌要求:
- DocuSign的OAuth 2.0访问令牌
- 所需范围:
signature,impersonation - 适用于演示(沙盒)和生产环境
可用工具
1.发送_开发
发送文件进行电子签名。
参数:
accessToken(字符串,必填):OAuth 2.0访问令牌documentBase64(字符串,必填):Base64编码文档(PDF、DOCX等)documentName(字符串,必填):文档文件名(例如“Contract.pdf”)recipients(数组,必填):收件人列表
- email (string):收件人电子邮件地址 - name (string):收件人全名 - role (字符串,可选):“签名者”、“碳副本”或“认证交付”
emailSubject(字符串,必填):电子邮件主题行emailBody(字符串,可选):自定义电子邮件options(对象,可选):
- status (string):“发送”(立即)或“创建”(草稿) - accountId (string):特定DocuSign帐户ID
例子:
{
accessToken: "eyJ0eXAiOiJNVCIsImFsZ...",
documentBase64: "JVBERi0xLjQKJeL...",
documentName: "Employment_Contract.pdf",
recipients: [{
email: "john.doe@company.com",
name: "John Doe",
role: "signer"
}],
emailSubject: "Please sign: Employment Contract",
emailBody: "Please review and sign the attached employment contract",
options: {
status: "sent"
}
}答复:
{
"success": true,
"data": {
"envelopeId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "sent",
"statusDateTime": "2025-11-01T12:00:00Z",
"uri": "/envelopes/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}______________________________________________________________________
2.获取开发状态
获取信封的当前状态和详细信息。
参数:
accessToken(字符串,必填):OAuth 2.0访问令牌envelopeId(字符串,必填):要检查的信封IDoptions(对象,可选):
- accountId (string):特定DocuSign帐户ID - includeRecipients (布尔值):包括收件人详细信息(默认值:true)
例子:
{
accessToken: "eyJ0eXAiOiJNVCIsImFsZ...",
envelopeId: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
options: {
includeRecipients: true
}
}答复:
{
"success": true,
"data": {
"envelopeId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "completed",
"statusDateTime": "2025-11-01T14:30:00Z",
"emailSubject": "Please sign: Employment Contract",
"sender": {
"email": "sender@company.com",
"name": "HR Department"
},
"recipients": [{
"email": "john.doe@company.com",
"name": "John Doe",
"status": "completed",
"signedDateTime": "2025-11-01T14:25:00Z"
}]
}
}______________________________________________________________________
3.列表_开发
列出具有可选筛选功能的帐户信封。
参数:
accessToken(字符串,必填):OAuth 2.0访问令牌options(对象,可选):
- accountId (string):特定DocuSign帐户ID - status (string):按状态筛选(“已发送”、“已送达”、“完成”、“拒绝”、“作废”、“全部”) - fromDate (字符串):开始日期(ISO 8601:YYYY-MM-DD) - toDate (字符串):结束日期(ISO 8601:YYYY-MM-DD) - count (数字):最大结果(1-100,默认值:20)
例子:
{
accessToken: "eyJ0eXAiOiJNVCIsImFsZ...",
options: {
status: "completed",
fromDate: "2025-10-01",
count: 10
}
}答复:
{
"success": true,
"data": {
"envelopes": [
{
"envelopeId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "completed",
"emailSubject": "Employment Contract",
"sentDateTime": "2025-11-01T12:00:00Z"
}
],
"totalCount": 1
}
}______________________________________________________________________
4.创建开发模板
使用预配置的模板创建并发送信封。
参数:
accessToken(字符串,必填):OAuth 2.0访问令牌templateId(字符串,必填):要使用的模板IDrecipients(数组,必填):映射到模板角色的收件人
- email (string):收件人电子邮件 - name (string):收件人姓名 - roleName (string):模板中的角色名称(例如“Signer1”)
emailSubject(字符串,可选):覆盖模板主题options(对象,可选):
- status (string):“已发送”或“已创建” - accountId (string):特定DocuSign帐户ID
例子:
{
accessToken: "eyJ0eXAiOiJNVCIsImFsZ...",
templateId: "12345678-1234-1234-1234-123456789012",
recipients: [{
email: "john.doe@company.com",
name: "John Doe",
roleName: "Signer"
}],
emailSubject: "Please sign: NDA Agreement"
}______________________________________________________________________
5.列表模板
列出帐户的可用信封模板。
参数:
accessToken(字符串,必填):OAuth 2.0访问令牌options(对象,可选):
- accountId (string):特定DocuSign帐户ID - count (数字):最大结果(1-100,默认值:20) - searchText (string):按名称搜索模板
例子:
{
accessToken: "eyJ0eXAiOiJNVCIsImFsZ...",
options: {
searchText: "employment",
count: 10
}
}答复:
{
"success": true,
"data": {
"templates": [
{
"templateId": "12345678-1234-1234-1234-123456789012",
"name": "Employment Contract Template",
"description": "Standard employment contract",
"created": "2025-01-15T10:00:00Z"
}
],
"totalCount": 1
}
}______________________________________________________________________
6.下载_文档
从信封中下载文件或证书。
参数:
accessToken(字符串,必填):OAuth 2.0访问令牌envelopeId(字符串,必填):信封IDdocumentId(字符串,必填):文档ID(所有文档使用“组合”)options(对象,可选):
- accountId (string):特定DocuSign帐户ID - certificate (boolean):包括完工证书(默认值:false)
例子:
{
accessToken: "eyJ0eXAiOiJNVCIsImFsZ...",
envelopeId: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
documentId: "1"
}答复:
{
"success": true,
"data": {
"documentBase64": "JVBERi0xLjQKJeLjz9MK...",
"documentName": "document_1.pdf",
"mimeType": "application/pdf"
}
}______________________________________________________________________
7.空隙_发展
作废(取消)已发送但未完成的信封。
参数:
accessToken(字符串,必填):OAuth 2.0访问令牌envelopeId(字符串,必填):信封ID无效voidReason(字符串,必填):作废原因options(对象,可选):
- accountId (string):特定DocuSign帐户ID
例子:
{
accessToken: "eyJ0eXAiOiJNVCIsImFsZ...",
envelopeId: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
voidReason: "Contract terms changed"
}______________________________________________________________________
8.获取接收状态
获取所有收件人的详细状态信息。
参数:
accessToken(字符串,必填):OAuth 2.0访问令牌envelopeId(字符串,必填):信封IDoptions(对象,可选):
- accountId (string):特定DocuSign帐户ID
例子:
{
accessToken: "eyJ0eXAiOiJNVCIsImFsZ...",
envelopeId: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}答复:
{
"success": true,
"data": {
"recipients": [
{
"recipientId": "1",
"email": "john.doe@company.com",
"name": "John Doe",
"type": "signer",
"status": "completed",
"signedDateTime": "2025-11-01T14:25:00Z",
"deliveredDateTime": "2025-11-01T12:05:00Z"
}
],
"totalRecipients": 1
}
}安装
cd "C:\Users\oreph\Documents\AgenticLedger\Custom MCP SERVERS\DocuSignMCP"
npm install
npm run build测试
# Set your DocuSign access token
export DOCUSIGN_ACCESS_TOKEN="your_token_here"
# Run integration tests
npm run test:integrationDocuSign设置
1.创建开发人员帐户
- 访问https://developers.docusign.com/
- 点击“免费开始”
- 创建您的开发人员帐户
2.创建集成密钥
- 转到“管理”>“集成”>“应用程序和密钥”
- 点击“+添加应用程序和集成密钥”
- 为其命名(例如,“代理分类账MCP”)
- 保存集成密钥(客户端ID)
3.配置OAuth
- 添加重定向URI:
https://your-platform.com/oauth/callback - 添加密钥(用于授权码授予)
- 请求这些范围:
- signature -用于信封操作 - impersonation -代表用户行事
4.获取访问令牌
使用OAuth 2.0授权码授予:
1. Redirect user to:
https://account-d.docusign.com/oauth/auth?
response_type=code&
scope=signature%20impersonation&
client_id=YOUR_CLIENT_ID&
redirect_uri=YOUR_REDIRECT_URI
2. User authorizes, you receive code
3. Exchange code for token:
POST https://account-d.docusign.com/oauth/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&
code=AUTHORIZATION_CODE&
client_id=YOUR_CLIENT_ID&
client_secret=YOUR_CLIENT_SECRET
4. Receive access token (valid for ~8 hours)平台集成说明
认证流程
- 平台处理OAuth: AgentLedger平台管理完整的OAuth流程
- 传递给服务器的令牌: MCP服务器通过以下方式接收访问令牌
accessToken参数 - 无令牌存储: 服务器不存储令牌,而是根据请求接收令牌
- 令牌刷新: 平台自动处理令牌刷新
环境支持
- 演示(沙盒):
https://demo.docusign.net/restapi - 生产:
https://www.docusign.net/restapi
服务器会自动从访问令牌中检测环境。
速率限制
DocuSign API费率限制:
- 演示:每小时1000个请求
- 产量:因计划而异(通常为1000+/小时)
所需范围
signature-发送和管理信封impersonation-代表经过身份验证的用户行事
错误处理
所有工具返回一致的错误格式:
{
"success": false,
"error": "Specific error message explaining what went wrong"
}常见错误:
Invalid or expired authentication credentials-令牌无效/过期Envelope not found with ID: xxx-信封ID无效Template not found with ID: xxx-模板ID无效One or more recipient email addresses are invalid-电子邮件验证失败
依赖项
@modelcontextprotocol/sdk^1.0.4-MCP协议实现docusign-esign^7.0.0-官方DocuSign Node.js SDKzod^3.24.1-模式验证zod-to-json-schema^3.22.4-模式转换
技术规格
- Node.js版本: >=18.0.0
- TypeScript: ES2022采用严格模式
- 模块系统: ES 模块
- 官方SDK: 是(文件设计)
- 身份验证: OAuth 2.0
- 响应格式: 标准代理分类账格式
已知限制
- 需要访问令牌: 所有操作都需要有效的访问令牌
- 帐户自动检测: 使用用户信息中的默认帐户
- 文件格式: 文档上传需要Base64编码
- 模板角色: 必须与模板配置完全匹配
平台配置建议
- 令牌寿命: 实施令牌刷新(DocuSign令牌将在约8小时后过期)
- 错误处理: 向用户显示身份验证失败的明确消息
- 演示与生产: 允许用户选择环境
- 模板管理: 为用户提供UI以查看可用模板
用例
- 人力资源入职培训: 自动签订雇佣合同
- 销售合同: 发送提案供客户签名
- NDA: 快速NDA分发和跟踪
- 法律文件: 管理法律协议工作流程
- 发票审批: 获得客户对发票的批准
支持和资源
DocuSign开发人员中心:
- https://developers.docusign.com/
API参考:
- https://developers.docusign.com/docs/esign-rest-api/reference/
OAuth指南:
- https://developers.docusign.com/platform/auth/
代码示例:
- https://github.com/docusign/code-examples-node
______________________________________________________________________
为AgentLedger平台构建 遵循MCP服务器构建模式v1.0.0 存储库: 待定
______________________________________________________________________
状态: ✅ 代码完成-等待真正的API测试 下一步: 获取DocuSign访问令牌并运行集成测试
