Token导航 LogoToken导航TokenDH.com
Esign MCP logo
文档知识stdio官方级别未说明来源级核验

Esign MCP

MCP Server

一个提供在PDF文档指定坐标添加签名图像工具的MCP服务器,适用于电子签名和文档处理场景。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
PDF处理PythonClaudeClaude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

adamanz

提供方

adamanz

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run python mcp_server.py

详细介绍

eSign MCP服务器

一种MCP(模型上下文协议)服务器,通过在指定坐标处添加签名图像来提供对PDF文档进行签名的工具。

鸣谢

此MCP服务器建立在优秀的 签名pdf 项目by 查理·德塔尔 (cfd@media.mit.edu).原始的signpdf实用程序提供了此MCP服务器用现代MCP接口包装的核心PDF签名功能。

特性

  • sign_pdf:通过精确定位将签名图像添加到PDF文档中
  • get_pdf_info:获取PDF元数据,包括页数和尺寸
  • 输入验证和错误处理
  • 支持PNG和JPG签名图像
  • 可选日期戳记
  • 文件传输的Base64编码

工具

sign_pdf

通过在指定坐标处添加签名图像来签署PDF文档。

参数:

  • pdf_data (string):Base64编码的PDF文件内容
  • signature_data (string):Base64编码的签名图像(PNG、JPG)
  • page_number (int,可选):要签名的页码(基于1的索引,默认值:1)
  • x (浮点数,可选):PDF单位左下角的X坐标(默认值:100)
  • y (浮点数,可选):PDF单位左下角的Y坐标(默认值:100)
  • width (浮点数,可选):以PDF为单位的签名宽度(默认值:125)
  • height (浮点数,可选):签名的高度,以PDF为单位(默认值:40)
  • add_date (bool,可选):是否在签名旁边添加当前日期(默认值:false)

退货: Base64编码的签名PDF内容

get_pdf_info

获取有关PDF文档的信息,包括页数和尺寸。

参数:

  • pdf_data (string):Base64编码的PDF文件内容

退货:

{
  "num_pages": 1,
  "pages": [
    {
      "page_number": 1,
      "width": 612.0,
      "height": 792.0
    }
  ]
}

安装

先决条件

  • Python 3.11+
  • uv 包管理器(推荐)或 pip

本地安装

  1. 克隆或下载此存储库
  2. 安装依赖项:
   uv pip install -r requirements.txt

运行服务器

要运行MCP服务器,请执行以下操作:

uv run python mcp_server.py

默认情况下,服务器将以stdio传输方式启动。

测试

提供了一个测试脚本来验证服务器功能:

uv run python test_server.py

这将:

  1. 创建测试PDF文档
  2. 生成测试签名图像
  3. 测试 get_pdf_info 工具
  4. 测试 sign_pdf 工具
  5. 将签名的PDF另存为 test_signed.pdf

Docker部署

服务器包括Docker对容器化部署的支持:

# Build the image
docker build -t pdf-signer-mcp .

# Run the container
docker run -p 8000:8000 pdf-signer-mcp

Smithery部署

此服务器配置为在Smithery上部署,包括 smithery.yaml 配置文件。

配置文件

  • Dockerfile:容器构建说明
  • smithery.yaml:Smithery部署配置
  • requirements.txt:Python依赖关系

使用示例

与Claude Desktop一起使用

  1. 安装克劳德桌面claude.ai/下载
  2. 克隆此存储库:
   git clone https://github.com/adamanz/esign-mcp.git
   cd esign-mcp
  1. 安装依赖项:
   uv pip install -r requirements.txt
  1. 配置Claude桌面 通过编辑配置文件:

配置文件的位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json

配置:

{
  "mcpServers": {
    "esign-mcp": {
      "command": "uv",
      "args": [
        "run", 
        "python", 
        "/ABSOLUTE/PATH/TO/esign-mcp/mcp_server.py"
      ]
    }
  }
}
  1. 重新启动克劳德桌面 加载MCP服务器
  2. 查找MCP工具 -你应该看到一个🔨 指示可用工具的锤子图标

使用Claude代码

  1. 安装Claude代码 (如果尚未安装)
  2. 克隆此存储库 在您的项目目录中:
   git clone https://github.com/adamanz/esign-mcp.git
   cd esign-mcp
   uv pip install -r requirements.txt
  1. 启动MCP服务器 在您的终端中:
   uv run python mcp_server.py
  1. 克劳德密码,MCP服务器在stdio模式下运行时将被自动检测到
  2. 使用工具 直接在您与Claude Code的对话中

与光标一起使用

  1. 安装游标cursor.sh
  2. 设置MCP服务器 通过将其添加到您的项目中:
   git clone https://github.com/adamanz/esign-mcp.git
   cd esign-mcp
   uv pip install -r requirements.txt
  1. 配置光标 通过创建或编辑光标MCP配置来使用MCP服务器
  2. 运行服务器:
   uv run python mcp_server.py
  1. 访问工具 通过Cursor的AI助手界面

替代方案:不使用紫外线

如果你更喜欢使用标准pip:

git clone https://github.com/adamanz/esign-mcp.git
cd esign-mcp
pip install -r requirements.txt
python mcp_server.py

更新配置以使用 python 而不是 uv run python.

工具调用示例

获取PDF信息:

{
  "tool": "get_pdf_info",
  "arguments": {
    "pdf_data": "JVBERi0xLjQK..."
  }
}

签署PDF:

{
  "tool": "sign_pdf",
  "arguments": {
    "pdf_data": "JVBERi0xLjQK...",
    "signature_data": "iVBORw0KGgoAAAA...",
    "page_number": 1,
    "x": 100,
    "y": 100,
    "width": 125,
    "height": 40,
    "add_date": true
  }
}

实际使用示例

一旦您的MCP服务器运行,您就可以使用自然语言与PDF签名工具进行交互:

对话示例:

  1. 获取PDF信息:

> “我有一个PDF文件。你能告诉我它有多少页,尺寸是多少吗?”

AI会要求您提供PDF文件,然后使用 get_pdf_info 工具来分析它。

  1. 签署PDF:

> “我需要在第一页签署这份PDF合同。你能在右下角添加我的签名图片吗?”

AI将使用 sign_pdf 工具具有适当的坐标,用于右下角放置。

  1. 多个签名:

> 请将我的签名添加到此PDF的第2页,位于坐标200、150处,并使其为100x30像素。还要添加今天的日期

AI将使用精确的坐标并启用日期戳记。

  1. 获取坐标帮助:

> “我想在这份PDF上签名,但我不确定签名的位置。你能帮我理解坐标系吗?”

AI可以解释PDF坐标,并帮助您选择合适的值。

技术说明

PDF坐标

  • 坐标使用PDF标准单位(1/72英寸)
  • 原点(0,0)位于页面的左下角
  • X向右增加,Y向上增加

支持的图像格式

  • PNG(建议用于透明度支持)
  • JPG/JPEG

文件处理

  • 所有文件操作都使用自动清理的临时文件
  • 输入验证可防止常见错误
  • 使用描述性消息进行正确的错误处理

依赖项

  • fastmcp:用于MCP服务器实现的FastMCP框架
  • pypdf:PDF读写库
  • reportlab:PDF生成和图像放置
  • pillow:图像处理(依赖于reportlab)

故障排除

常见问题

  1. “找不到模块”错误
   # Make sure dependencies are installed
   uv pip install -r requirements.txt
   # Or with pip
   pip install -r requirements.txt
  1. MCP服务器未出现在Claude Desktop中

- 检查路径是否正确 claude_desktop_config.json 是绝对的(不是相对的) - 更改配置后重新启动Claude Desktop - 检查克劳德桌面日志: ~/Library/Logs/Claude/mcp*.log (macOS)

  1. “找不到命令:uv”

- 安装紫外线: curl -LsSf https://astral.sh/uv/install.sh | sh - 或者使用常规pip:替换 uv run python 随着 python

  1. 权限错误
   # Make sure the script is executable
   chmod +x mcp_server.py
  1. PDF签名失败

- 确保您的PDF和签名图像有效 - 检查坐标是否在页面边界内 - 使用 get_pdf_info 首先了解页面尺寸

获取帮助

  • 检查 常见问题
  • 运行测试脚本以验证安装: uv run python test_server.py
  • 有关Claude Desktop的特定问题,请查看 MCP故障排除指南

许可证

MIT许可证-此项目与原始项目保持相同的许可证 签名pdf 查理·德塔尔的项目。

原始项目

PDF签名的核心功能基于 签名pdf Charlie DeTar的实用程序。这个MCP服务器扩展了这项工作,为现代人工智能集成提供了与MCP兼容的工具。

贡献

  1. 使用提供的测试脚本测试您的更改
  2. 确保正确指定了所有依赖项
  3. 根据需要更新文档
  4. 遵循现有的代码样式和模式

目录标签

目录标签

PDF处理PythonClaude本地部署电子签名文档自动化MCP服务器坐标定位

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP