sn-mcp-server

sn-mcp-server

https://github.com/signnow/sn-mcp-server MCP server for SignNow e-signature: templates, invites, embedded signing/editor, status & downloads.

Category
访问服务器

README

<details> <summary><h1>About SignNow API</h1></summary>

The SignNow REST API empowers users to deliver a seamless eSignature experience for signers, preparers, and senders. Pre-fill documents, create embedded branded workflows for multiple signers, request payments, and track signature status in real-time. Ensure signing is simple, secure, and intuitive on any device.

What you can do with the SignNow API:

  • Send documents and document groups for signature in a role-based order
  • Create reusable templates from documents
  • Pre-fill document fields with data
  • Collect payments as part of the signing flow
  • Embed the document sending, signing, or editing experience into your website, application, or any system of record
  • Track signing progress and download the completed documents

</details>


SignNow MCP Server

A Model Context Protocol (MCP) server that gives AI agents secure, structured access to SignNow eSignature workflows — templates, embedded signing, invites, status tracking, and document downloads — over STDIO or Streamable HTTP.


Table of contents


Features

  • Templates & groups

    • Browse all templates and template groups
    • Create documents or groups from templates (one-shot flows included)
  • Invites & embedded UX

    • Email invites and ordered recipients
    • Embedded signing/sending/editor links for in-app experiences
  • Status & retrieval

    • Check invite status and step details
    • Download final documents (single or merged)
    • Read normalized document/group structure for programmatic decisions
  • Transports

    • STDIO (best for local clients)
    • Streamable HTTP (best for Docker/remote)

Quick start

Prerequisites

  • Python 3.11+ installed on your system
  • Environment variables configured

1. Setup Environment Variables

# Create .env file with your SignNow credentials
# You can copy from env.example if you have the source code
# Or create .env file manually with required variables (see Environment Variables section below)

2. Install and Run

Option A: Install from PyPI (Recommended)

# Install the package from PyPI
pip install signnow-mcp-server

# Run MCP server in standalone mode
sn-mcp serve

Option B: Install from Source (Development)

# 1) Clone & configure
git clone https://github.com/signnow/sn-mcp-server.git
cd sn-mcp-server
cp .env.example .env
# fill in your values in .env

# 2) Install (editable for dev)
pip install -e .

# 3) Run as STDIO MCP server (recommended for local tools & Inspector)
sn-mcp serve

STDIO is ideal for desktop clients and local testing.

Local/Remote (HTTP)

# Start HTTP server on 127.0.0.1:8000
sn-mcp http

# Custom host/port
sn-mcp http --host 0.0.0.0 --port 8000

# Dev reload
sn-mcp http --reload

By default, the Streamable HTTP MCP endpoint is served under /mcp. Example URL:

http://localhost:8000/mcp

Docker

# Build
docker build -t sn-mcp-server .

# Run HTTP mode (recommended for containers)
docker run --env-file .env -p 8000:8000 sn-mcp-server sn-mcp http --host 0.0.0.0 --port 8000

STDIO inside containers is unreliable with many clients. Prefer HTTP when using Docker.

Docker Compose

# Only the MCP server
docker-compose up sn-mcp-server

# Both services (if defined)
docker-compose up

Configuration

Copy .env.example.env and fill in values. All settings are validated via pydantic-settings at startup.

Authentication options

1) Username / Password (recommended for desktop dev flows)

SIGNNOW_USER_EMAIL=<email>
SIGNNOW_PASSWORD=<password>
SIGNNOW_API_BASIC_TOKEN=<base64 basic token>

2) OAuth 2.0 (for hosted/advanced scenarios)

SIGNNOW_CLIENT_ID=<client_id>
SIGNNOW_CLIENT_SECRET=<client_secret>
# + OAuth server & RSA settings below

When running via some desktop clients, only user/password may be supported.

SignNow & OAuth settings

# SignNow endpoints (defaults shown)
SIGNNOW_APP_BASE=https://app.signnow.com
SIGNNOW_API_BASE=https://api.signnow.com

# Optional direct API token (not required for normal use)
SIGNNOW_TOKEN=<access_token>

# OAuth server (if you enable OAuth mode)
OAUTH_ISSUER=<your_issuer_url>
ACCESS_TTL=3600
REFRESH_TTL=2592000
ALLOWED_REDIRECTS=<comma,separated,uris>

# RSA keys for OAuth (critical in production)
OAUTH_RSA_PRIVATE_PEM=<PEM content>
OAUTH_JWK_KID=<key id>

Production key management

If OAUTH_RSA_PRIVATE_PEM is missing in production, a new RSA key will be generated on each restart, invalidating all existing tokens. Always provide a persistent private key via secrets management in prod.


Client setup

VS Code — GitHub Copilot (Agent Mode)

Create .vscode/mcp.json in your workspace:

STDIO (local):

{
  "servers": {
    "signnow": {
      "command": "sn-mcp",
      "args": ["serve"],
      "env": {
        "SIGNNOW_USER_EMAIL": "${env:SIGNNOW_USER_EMAIL}",
        "SIGNNOW_PASSWORD": "${env:SIGNNOW_PASSWORD}",
        "SIGNNOW_API_BASIC_TOKEN": "${env:SIGNNOW_API_BASIC_TOKEN}"
      }
    }
  }
}

HTTP (remote or Docker):

{
  "servers": {
    "signnow": {
      "type": "http",
      "url": "http://localhost:8000/mcp"
    }
  }
}

Then open Chat → Agent mode, enable the signnow tools, and use them in prompts.

Claude Desktop

Use Desktop Extensions or the manual MCP config (Developer → Edit config) to add either:

  • STDIO command: sn-mcp serve
  • HTTP endpoint: http://localhost:8000/mcp

Follow Claude’s MCP guide for exact steps and secure secret handling.

Cursor

Add the server in Cursor’s MCP settings using either STDIO (sn-mcp serve) or the HTTP URL (http://localhost:8000/mcp).

MCP Inspector (testing)

Great for exploring tools & schemas visually.

# Start Inspector (opens UI on localhost)
npx @modelcontextprotocol/inspector

# Connect (STDIO): run your server locally and attach
sn-mcp serve

# Or connect (HTTP): use http://localhost:8000/mcp

You can list tools, call them with JSON args, and inspect responses.


Tools

Each tool is described concisely; use an MCP client (e.g., Inspector) to view exact JSON schemas.

  • list_all_templates — List templates & template groups with simplified metadata.
  • list_document_groups — Browse your document groups and statuses.
  • create_from_template — Make a document or a group from a template/group.
  • send_invite — Email invites (documents or groups), ordered recipients supported.
  • create_embedded_invite — Embedded signing session without email delivery.
  • create_embedded_sending — Embedded “sending/management” experience.
  • create_embedded_editor — Embedded editor link to place/adjust fields.
  • send_invite_from_template — One-shot: create from template and invite.
  • create_embedded_sending_from_template — One-shot: template → embedded sending.
  • create_embedded_editor_from_template — One-shot: template → embedded editor.
  • create_embedded_invite_from_template — One-shot: template → embedded signing.
  • get_invite_status — Current invite status/steps for document or group.
  • get_document_download_link — Direct download link (merged output for groups).
  • get_document — Normalized document/group structure with field values.
  • update_document_fields — Prefill text fields in individual documents.

Tip: Start with list_all_templatescreate_from_templatecreate_embedded_* / send_invite, then get_invite_status and get_document_download_link.


FAQ / tips

  • STDIO vs Docker? Prefer STDIO for local dev; inside Docker, use HTTP.
  • Sandbox vs production? Start with SignNow’s sandbox/dev credentials; production requires proper OAuth and persistent RSA private key.
  • Where do I see exact tool schemas? Use MCP Inspector or your client’s “tool details” view.
  • Where are examples? See examples/ in this repo for starter integrations.

Examples

The examples/ directory contains working examples of how to integrate the SignNow MCP Server with popular AI agent frameworks:

  • LangChain - Integration with LangChain agents using langchain-mcp-adapters
  • LlamaIndex - Integration with LlamaIndex agents using llama-index-tools-mcp
  • SmolAgents - Integration with SmolAgents framework using native MCP support

Each example demonstrates how to:

  • Start the MCP server as a subprocess
  • Convert MCP tools to framework-specific tool formats
  • Create agents that can use SignNow functionality
  • Handle environment variable configuration

To run an example:

# Make sure you have the required dependencies installed
pip install langchain-openai langchain-mcp-adapters  # for LangChain example
pip install llama-index-tools-mcp                   # for LlamaIndex example  
pip install smolagents                              # for SmolAgents example

# Set up your .env file with SignNow credentials and LLM configuration
# Then run the example
python examples/langchain/langchain_example.py
python examples/llamaindex/llamaindex_example.py
python examples/smolagents/stdio_demo.py

Useful resources

Sample apps

Explore ready-to-use sample apps to quickly test preparing, signing, and sending documents from your software using the SignNow API.

Try the sample apps.

API documentation

Find technical details on SignNow API requests, parameters, code examples, and possible errors. Learn more about the API functionality in detailed guides and use cases.

Read the API documentation.

GitHub Copilot extension

Develop eSignature integrations directly in GitHub using AI-powered code suggestions. Copilot recommends API calls and code snippets that align with SignNow API guidelines.

Get SignNow for GitHub Copilot.


License

MIT — see LICENSE.md.


About SignNow MCP Server — maintained by the SignNow team. Issues and contributions welcome via GitHub pull requests.


推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选