AddressPenny MCP Server
Server Quality Checklist
Latest release: v0.1.4
- Disambiguation5/5
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.
Naming Consistency3/5Tools 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.
Tool Count5/5Three tools are appropriate for the domain: single validation, batch validation, and text extraction. The count is well-scoped and each tool earns its place.
Completeness4/5Core 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.
Average 4.1/5 across 3 of 3 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
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.
Conciseness5/5Is 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.
Completeness4/5Given 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.
Parameters3/5Does 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.
Purpose5/5Does 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.
Usage Guidelines2/5Does 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.
- Behavior4/5
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.
Conciseness5/5Is 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.
Completeness4/5Given 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.
Parameters4/5Does 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.
Purpose5/5Does 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.
Usage Guidelines3/5Does 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.
- Behavior4/5
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.
Conciseness5/5Is 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.
Completeness3/5Given 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.
Parameters4/5Does 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.
Purpose5/5Does 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.
Usage Guidelines4/5Does 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.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/CanalWestStudio/addresspenny-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server