AddressPenny MCP Server
@addresspenny/mcp
用于 Addresspenny 地址验证的 Model Context Protocol 服务器。让 Claude Desktop、Cursor 以及任何兼容 MCP 的代理能够验证邮政地址、批量清理列表,并从自由格式文本中提取地址。
工具
validate_address— 验证单个邮政地址。返回标准化地址和验证元数据。消耗 1 个积分。bulk_validate— 在一次调用中验证最多 100 个地址。每个地址消耗 1 个积分。parse_and_validate— 从非结构化文本(聊天记录、转录、抓取的页面)中提取所有邮政地址并逐一验证。每个提取并验证的地址消耗 1 个积分。
Related MCP server: Personal Toolkit MCP Server
要求
Node.js 18 或更高版本
一个拥有 API 令牌及其账户 ID 的 Addresspenny 账户 — 请在 addresspenny.com 创建两者
配置
服务器读取三个环境变量:
变量 | 必需 | 默认值 | 说明 |
| 是 | — | 来自 Addresspenny 的 API 令牌 |
| 是 | — | 带前缀的账户 ID(例如 |
| 否 |
| 用于自托管或暂存环境的覆盖地址 |
Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) 或您操作系统上的等效文件:
{
"mcpServers": {
"addresspenny": {
"command": "npx",
"args": ["-y", "@addresspenny/mcp"],
"env": {
"ADDRESSPENNY_API_KEY": "your-api-token",
"ADDRESSPENNY_ACCOUNT_ID": "acct_your_account_id"
}
}
}
}重启 Claude Desktop。工具将出现在聊天输入框的工具图标下。
Cursor
添加到 ~/.cursor/mcp.json:
{
"mcpServers": {
"addresspenny": {
"command": "npx",
"args": ["-y", "@addresspenny/mcp"],
"env": {
"ADDRESSPENNY_API_KEY": "your-api-token",
"ADDRESSPENNY_ACCOUNT_ID": "acct_your_account_id"
}
}
}
}本地开发
npm install
npm run build
ADDRESSPENNY_API_KEY=... ADDRESSPENNY_ACCOUNT_ID=... node build/index.js该服务器通过 stdio 使用 MCP 协议进行通信。它不打算直接调用 — 请使用上述配置将 MCP 客户端指向它。
许可证
MIT
Available Tools
3 toolsbulk_validateA
Validate up to 100 postal addresses in a single request. Consumes 1 credit per address. Returns an array where each entry is either a validated address or an error.
| Name | Required | Description | Default |
|---|---|---|---|
| addresses | Yes | Array of address strings to validate (max 100). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It discloses credit consumption (1 per address) and return format (array of validated address or error), which are key behavioral traits. It does not detail authorization needs or rate limits, but the provided information is adequate for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and conveys all essential information without extraneous text. It is front-loaded with the main action and then adds cost and return details, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description covers usage limits, cost, and return structure. However, it does not mention error handling behaviors (e.g., partial failures) or contrast with sibling tools, leaving some gaps for an agent to fully understand context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single parameter 'addresses' with a description that already states 'max 100'. The tool description adds no additional meaning beyond what the schema provides (e.g., no format examples or expected address standards). With 100% schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates postal addresses in bulk, with a specific limit of 100 addresses. It also mentions credit consumption and return format, making the purpose unambiguous. The sibling tools 'parse_and_validate' and 'validate_address' suggest different scopes, but the description implicitly differentiates by focusing on batch processing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context (single request, up to 100 addresses) but does not explicitly state when to use this tool versus alternatives like 'validate_address' for single address validation. No exclusions or prerequisites are mentioned, leaving the agent to infer usage without clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_and_validateA
Extract postal addresses from unstructured text (emails, chat messages, call transcripts, scraped pages) and validate each one. Consumes 1 credit per extracted and validated address. Returns an empty list if no complete addresses are found.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Freeform text that may contain zero or more postal addresses. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behaviors. It mentions a specific cost ('Consumes 1 credit per extracted and validated address') and return behavior ('Returns an empty list if no complete addresses are found'). These are useful traits beyond mere function. It does not explicitly state side effects or permissions, but extraction and validation are likely read-only operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: first states the core action, second adds cost transparency, third describes the empty result case. Every sentence is informative and earns its place. It is front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the core function, cost, and empty result, it lacks details about the output format (e.g., what does a validated address look like? Is it a string? An object with components?). With no output schema, the description should explain the successful return structure. Additionally, no information is given about error handling, input size limits, or validation criteria.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'text' has 100% schema coverage with a description that clarifies it is freeform text containing zero or more addresses. The tool description adds concrete examples of what constitutes 'unstructured text' (emails, chat messages, etc.), providing meaning beyond the schema's generic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool extracts postal addresses from unstructured text and validates them. It specifies the verb 'extract and validate' and the resource 'postal addresses from unstructured text'. The examples of input types (emails, chat messages, etc.) differentiate it from sibling tools like 'validate_address' which likely handle already identified addresses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear examples of when to use this tool (emails, chat messages, call transcripts, scraped pages). It does not explicitly state when not to use it or mention alternatives, but the context strongly implies it is for extraction and validation from raw text, distinguishing it from siblings that may operate on structured inputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_addressA
Validate a single postal address. Returns the standardized address, deliverability status, and validation metadata. Consumes 1 credit.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Full or partial postal address as a single string, e.g. '1600 Amphitheatre Pkwy, Mountain View, CA' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses that it returns standardized address, deliverability status, and validation metadata, and that it consumes 1 credit. These are useful behavioral details. However, it doesn't mention whether the tool is idempotent, whether it modifies data, or any error conditions beyond what's implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two short sentences. No unnecessary words, every sentence adds clear value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is fairly complete: it explains the input format, output types, and cost. However, it lacks any guidance on when to use siblings, which would improve completeness for agents choosing between tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers the single parameter with a description. The tool's description adds no additional parameter-level semantics beyond what the schema provides, but the schema itself is very clear with an example format. Since schema coverage is 100%, baseline 3, and the description doesn't add much extra, a score of 4 is appropriate as it confirms the meaning without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Validate' and the resource 'postal address', and specifies returns (standardized address, deliverability status, validation metadata). The naming and description distinguish it from siblings 'bulk_validate' and 'parse_and_validate' by emphasizing single address validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is for single address validation and mentions credit consumption, but provides no explicit guidance on when to choose this tool over siblings. For example, it doesn't state that 'bulk_validate' should be used for multiple addresses or when to use 'parse_and_validate' instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.1.4- First observed
bulk_validate - First observed
parse_and_validate - First observed
validate_address
TDQS
Scored across 3 tools
Each tool has a distinct purpose: bulk_validate for multiple addresses, validate_address for a single address, and parse_and_validate for extracting addresses from text. No overlap exists.
Tools share the 'validate' root but naming patterns differ: bulk_validate and validate_address follow a verb-like pattern, while parse_and_validate uses two verbs joined by 'and', breaking consistency.
Three tools are appropriate for the domain: single validation, batch validation, and text extraction. The count is well-scoped and each tool earns its place.
Core address validation operations are covered (single, bulk, extraction from text). Missing features like credit management or account info are minor gaps that do not hinder core functionality.
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Related MCP Servers
- FlicenseBqualityDmaintenanceAn MCP server that enables Claude Desktop to communicate with A2A protocol agents, allowing Claude to access extended capabilities through agent interactions.322-
- FlicenseNot gradedqualityDmaintenanceA local MCP server providing text utilities, math functions, and a persistent todo list, enabling task automation via natural language in Claude Desktop.-
- AlicenseNot gradedqualityFmaintenanceMCP server that lets AI agents create reviewable physical mail drafts, validate quotes, and pay for postage via MPP or x402 protocols.2MIT
- AlicenseAqualityAmaintenanceAn MCP server that exposes ISO 20022 postal-address classification, assessment, and remediation tools for AI agents, enabling them to prepare debtor/creditor addresses for the November 2026 structured-address cutover.13384 PyPI1Apache 2.0