Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add signnow/sn-mcp-server --skill sn-architecturegit clone --depth 1 https://github.com/signnow/sn-mcp-serverWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/signnow/sn-mcp-server/sn-architecture)<a href="https://agentmods.dev/skills/signnow/sn-mcp-server/sn-architecture"><img src="https://agentmods.dev/badge/skills/signnow/sn-mcp-server/sn-architecture/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/signnow/sn-mcp-server/sn-architecture"><img src="https://agentmods.dev/badge/skills/signnow/sn-mcp-server/sn-architecture.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00076 | $0.01308 |
| Opus 5 | $0.00038 | $0.00654 |
| Sonnet 5 | $0.00015 | $0.00262 |
| Haiku 4.5 | $0.00008 | $0.00131 |
Grade A, and why
sn-architecture scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 108 lines — stays where its author put it; the contents beside it link to each section on GitHub.
SignNow MCP Server — Architecture
Identity
This server is a stateless translation layer between AI agents and the SignNow API. It adds zero noise and carries only the signal the agent needs. Every design decision reinforces this identity.
Guiding Principles
| Principle | Rule |
|---|---|
| Thin Translator | Zero state, zero caching, zero business logic that belongs in the agent. |
| Stateless | No in-memory state between requests, no session objects, no module-level mutable state, no singletons. |
| Tool Minimization | Fewer tools with broader capability. One tool decides internally whether to call document vs. document-group API. |
| Token Efficiency | Every field in a response costs money and context. Carry only the minimum data the agent needs for its next decision. Omit nulls, empty lists, metadata. |
| Testability | Every business logic function is unit-testable by injecting a mocked SignNowAPIClient. If a design makes testing harder, the design is wrong. |
| Specific Errors | Every error message names the operation, entity (with IDs), and cause. |
| YAGNI | Don't add functionality until it's actually needed. No future-proofing for hypothetical requirements. |
| No Infrastructure Coupling | No AWS/GCP/Azure assumptions. |
Layer Architecture
Agent Request
→ Transport (Starlette / STDIO / SSE)
→ Tool Orchestrator (tools/signnow.py)
→ Token Resolution (TokenProvider)
→ Business Logic (tools/<feature>.py)
→ API Client (signnow_client/client_*.py)
→ SignNow API
→ Response Model (tools/models.py)
→ Agent
Layer Definitions & Access Rules
| # | Layer | Location | May Import | Must NOT Import |
|---|---|---|---|---|
| 1 | API Models | signnow_client/models/ |
pydantic only |
sn_mcp_server.*, signnow_client/client*.py |
| 2 | API Client | signnow_client/client_*.py |
Layer 1, signnow_client/exceptions.py, httpx (via base class) |
sn_mcp_server.* (NO upward imports) |
| 3 | Tool Response Models | sn_mcp_server/tools/models.py |
pydantic, Layer 1 types (for references) |
Raw API passthrough |
| 4 | Tool Business Logic | sn_mcp_server/tools/<feature>.py |
Layer 2 (client), Layer 3 (models) | Starlette, other tool modules, token resolution |
| 5 | Tool Orchestrator | sn_mcp_server/tools/signnow.py |
Layer 4, TokenProvider |
Business logic in orchestrator body |
| 6 | Auth | sn_mcp_server/auth.py, token_provider.py |
signnow_client, config |
Tools layer |
| 7 | Transport | sn_mcp_server/app.py, cli.py |
server.py, config.py, auth.py |
Tools directly, API client directly |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 108 lines · 76 tokens per session scan A d9a8e66efec5
sn-architecture is a skill published in the GitHub repository signnow/sn-mcp-server (8 stars, last pushed 1mo ago), licensed MIT. It adds 76 tokens to every session and 1,308 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
webhook-handler-patterns
Best practices for webhook handlers: verify → parse → handle idempotently. Covers idempotency, error handling, retry logic, framework-specific gotchas (Express, Next.js, FastAPI). Use when implementing any webhook receiver.
api
FastAPI + async/sync HTTP client patterns, JWT auth, multi-provider routing, Pydantic request/response models, CORS, background tasks, and typed frontend API clients — synthesized from lead-gen-engine and seo-geo-aeo-engine.
webfetch
Fetch live web pages, inspect responses, extract relevant content, and summarize findings with links.
free-business-template-library
Finds relevant PandaDoc business document templates in a catalog of 1,000+ free templates and returns direct links for customization and eSignature. Use when the user asks for a ready-made business document template or wants to find, browse, compare, or select PandaDoc templates for proposals, contracts, agreements…
datamodel-code-generator
Use this skill when the user wants Python data models, Pydantic models, dataclasses, TypedDicts, msgspec structs, or type-safe Python classes generated from OpenAPI, AsyncAPI, JSON Schema, GraphQL, JSON/YAML/CSV sample data, MCP tool schemas, Protocol Buffers, XML Schema, Apache Avro, or existing Python model objects.…
company-brain
How an agent should operate as one mind inside a shared Company Brain built on Caura — recall before acting, obey fleet keystones, reuse and publish skills, and report outcomes so every task compounds across the whole organization. Use this whenever you work as part of a Caura-connected team or fleet and your work…