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
本地安装
- 克隆或下载此存储库
- 安装依赖项:
uv pip install -r requirements.txt运行服务器
要运行MCP服务器,请执行以下操作:
uv run python mcp_server.py默认情况下,服务器将以stdio传输方式启动。
测试
提供了一个测试脚本来验证服务器功能:
uv run python test_server.py这将:
- 创建测试PDF文档
- 生成测试签名图像
- 测试
get_pdf_info工具 - 测试
sign_pdf工具 - 将签名的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-mcpSmithery部署
此服务器配置为在Smithery上部署,包括 smithery.yaml 配置文件。
配置文件
Dockerfile:容器构建说明smithery.yaml:Smithery部署配置requirements.txt:Python依赖关系
使用示例
与Claude Desktop一起使用
- 安装克劳德桌面 从 claude.ai/下载
- 克隆此存储库:
git clone https://github.com/adamanz/esign-mcp.git
cd esign-mcp- 安装依赖项:
uv pip install -r requirements.txt- 配置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"
]
}
}
}- 重新启动克劳德桌面 加载MCP服务器
- 查找MCP工具 -你应该看到一个🔨 指示可用工具的锤子图标
使用Claude代码
- 安装Claude代码 (如果尚未安装)
- 克隆此存储库 在您的项目目录中:
git clone https://github.com/adamanz/esign-mcp.git
cd esign-mcp
uv pip install -r requirements.txt- 启动MCP服务器 在您的终端中:
uv run python mcp_server.py- 克劳德密码,MCP服务器在stdio模式下运行时将被自动检测到
- 使用工具 直接在您与Claude Code的对话中
与光标一起使用
- 安装游标 从 cursor.sh
- 设置MCP服务器 通过将其添加到您的项目中:
git clone https://github.com/adamanz/esign-mcp.git
cd esign-mcp
uv pip install -r requirements.txt- 配置光标 通过创建或编辑光标MCP配置来使用MCP服务器
- 运行服务器:
uv run python mcp_server.py- 访问工具 通过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签名工具进行交互:
对话示例:
- 获取PDF信息:
> “我有一个PDF文件。你能告诉我它有多少页,尺寸是多少吗?”
AI会要求您提供PDF文件,然后使用 get_pdf_info 工具来分析它。
- 签署PDF:
> “我需要在第一页签署这份PDF合同。你能在右下角添加我的签名图片吗?”
AI将使用 sign_pdf 工具具有适当的坐标,用于右下角放置。
- 多个签名:
> 请将我的签名添加到此PDF的第2页,位于坐标200、150处,并使其为100x30像素。还要添加今天的日期
AI将使用精确的坐标并启用日期戳记。
- 获取坐标帮助:
> “我想在这份PDF上签名,但我不确定签名的位置。你能帮我理解坐标系吗?”
AI可以解释PDF坐标,并帮助您选择合适的值。
技术说明
PDF坐标
- 坐标使用PDF标准单位(1/72英寸)
- 原点(0,0)位于页面的左下角
- X向右增加,Y向上增加
支持的图像格式
- PNG(建议用于透明度支持)
- JPG/JPEG
文件处理
- 所有文件操作都使用自动清理的临时文件
- 输入验证可防止常见错误
- 使用描述性消息进行正确的错误处理
依赖项
fastmcp:用于MCP服务器实现的FastMCP框架pypdf:PDF读写库reportlab:PDF生成和图像放置pillow:图像处理(依赖于reportlab)
故障排除
常见问题
- “找不到模块”错误
# Make sure dependencies are installed
uv pip install -r requirements.txt
# Or with pip
pip install -r requirements.txt- MCP服务器未出现在Claude Desktop中
- 检查路径是否正确 claude_desktop_config.json 是绝对的(不是相对的) - 更改配置后重新启动Claude Desktop - 检查克劳德桌面日志: ~/Library/Logs/Claude/mcp*.log (macOS)
- “找不到命令:uv”
- 安装紫外线: curl -LsSf https://astral.sh/uv/install.sh | sh - 或者使用常规pip:替换 uv run python 随着 python
- 权限错误
# Make sure the script is executable
chmod +x mcp_server.py- PDF签名失败
- 确保您的PDF和签名图像有效 - 检查坐标是否在页面边界内 - 使用 get_pdf_info 首先了解页面尺寸
获取帮助
- 检查 常见问题
- 运行测试脚本以验证安装:
uv run python test_server.py - 有关Claude Desktop的特定问题,请查看 MCP故障排除指南
许可证
MIT许可证-此项目与原始项目保持相同的许可证 签名pdf 查理·德塔尔的项目。
原始项目
PDF签名的核心功能基于 签名pdf Charlie DeTar的实用程序。这个MCP服务器扩展了这项工作,为现代人工智能集成提供了与MCP兼容的工具。
贡献
- 使用提供的测试脚本测试您的更改
- 确保正确指定了所有依赖项
- 根据需要更新文档
- 遵循现有的代码样式和模式
