Anwani
Server Details
Anwani MCP: create and manage permanent 9-digit address codes through OAuth (9code.app).
- Status
- Healthy
- Uptime
- 41.8% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
- Repository
- Anwani-app/anwani-mcp
- GitHub Stars
- 0
- Server Listing
- Anwani MCP
TDQS
Scored across 6 tools
Each tool targets a distinct operation: create, delete, list, patch, connection check, and link sharing. There is no meaningful overlap between any pair, so an agent can select unambiguously.
Five tools follow a clean verb_noun pattern (create_address, delete_address, list_addresses, patch_address, share_address). The lone outlier is 'session', which is a bare noun rather than a verb_noun form like check_session.
Six tools is well-scoped for a personal address book with quota. Each tool earns its place with no redundancy or filler.
The surface covers create, delete, list, partial update, and share, which handles the main lifecycle. However there is no single-address get/read tool, and patch is limited to instructions with coordinates immutable, leaving minor gaps.
Available Tools
6 toolscreate_addressBInspect
Create one address within the user quota. Requires a real map pin from the user (latitude/longitude). NEVER invent coordinates, city, or display name. If the user did not provide a location (coords, Maps link, or clear place), ask them first — do not call this tool with sample/demo data.
| Name | Required | Description | Default |
|---|---|---|---|
| pin | No | ||
| city | No | Only if the user provided a city. | |
| floor | No | ||
| label | No | ||
| phone | No | ||
| street | No | ||
| country | No | ||
| category | No | ||
| latitude | Yes | User-provided latitude only — never invent. | |
| longitude | Yes | User-provided longitude only — never invent. | |
| ownerName | No | Display name only if the user provided one. | |
| pinEnabled | No | ||
| postalCode | No | ||
| houseNumber | No | ||
| buildingName | No | ||
| instructions | No | ||
| neighborhood | No | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does add real context: a user-quota limit on creation and a strong anti-hallucination guardrail against sample/demo data. It still omits permissions/auth requirements, duplicate handling, what success returns, and — notably — any explanation of the required idempotency_key's effect on retries.
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?
Three sentences, front-loaded with the action, then the hard requirement, then the fallback behavior; there is no filler. The anti-invention warning is emphasized twice (coordinates/city/display name, then sample/demo data), which is mild redundancy but defensible for a safety rule.
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 18-parameter mutation with no annotations and no output schema, the description covers the highest-risk failure mode (fabricating location data) well but leaves most fields and all post-call behavior unexplained. An agent can call it safely, but not confidently about what happens on success or how idempotency behaves.
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?
Schema description coverage is only 22% across 18 parameters, so the description must compensate, but it only speaks to latitude/longitude (and obliquely to city/display name via the "never invent" rule). Fourteen other fields, including the required idempotency_key, get no explanation anywhere, leaving an agent to guess at their semantics.
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?
States a specific verb and resource ("Create one address") plus a scope constraint ("within the user quota"), which is enough to distinguish it from list_addresses/patch_address/delete_address. It never names those siblings explicitly, so the differentiation is inferred from the verb rather than stated.
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?
Gives a clear precondition (user must supply a real map pin with latitude/longitude) and an explicit when-not path: if the user gave no coords, Maps link, or clear place, ask first instead of calling the tool. It stops short of comparing against siblings — e.g. nothing says to use patch_address when editing an existing one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_addressBDestructiveInspect
Permanently delete an address owned by the connected account.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the safety profile is partly covered. The description adds genuinely useful context by stating the deletion is permanent and limited to addresses owned by the connected account, but it says nothing about reversibility guarantees, confirmations, or failure modes.
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?
One sentence, front-loaded with the destructive verb, zero filler. Nothing could be trimmed without losing meaning.
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 destructive single-parameter mutation with no output schema, the description covers irreversibility and ownership scope but leaves the parameter unexplained. Adequate but with a clear gap on how to supply 'code'.
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?
Schema description coverage is 0% and the single parameter 'code' is never mentioned in the description. An agent gets only the name and the regex pattern from the schema, so the description does not compensate for the missing semantic explanation of what 'code' identifies.
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 gives a specific verb ('Permanently delete') and resource ('an address'), plus a scope qualifier ('owned by the connected account'). It is unambiguously distinct from siblings like patch_address or list_addresses, though it never names an alternative explicitly.
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?
There is no when-to-use guidance and no mention of alternatives such as patch_address for modification or share_address for delegation. The only implied condition is ownership by the connected account, which is a constraint, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_addressesARead-onlyInspect
List addresses owned by the connected Anwani account (same quota as app/Telegram).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, so the description only needs to add non-obvious context — it does contribute that results are bounded by the same quota as app/Telegram. It says nothing about pagination, ordering, or whether the list can be empty, so the added value is modest.
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?
A single sentence with no filler, front-loading the verb and resource and appending only the one piece of non-obvious context. Nothing could be removed without losing 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?
For a zero-parameter, read-only list operation with no output schema, the description covers scope (owned by the connected account) and the quota constraint. Only the shape of the returned list is left implicit, which is a minor gap.
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 tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; the schema already declares additionalProperties=false.
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?
States a specific verb (List) and resource (addresses) scoped to the connected Anwani account, which cleanly separates it from the create/delete/patch/share siblings. It does not explicitly name or contrast with a sibling, but the operation is unambiguous.
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?
No statement of when to use this tool versus alternatives, nor any prerequisites or exclusions. The 'same quota as app/Telegram' note hints at a shared limit but does not tell an agent when this call is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch_addressBInspect
Patch only provided fields (e.g. instructions). Does not clear omitted fields. Coordinates cannot be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| changes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses partial-update semantics ('only provided fields', 'does not clear omitted fields') and a hard restriction ('coordinates cannot be changed'), which is real added value for a mutation tool. However it says nothing about permissions/auth, reversibility, or error behavior when the code is invalid.
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?
Three short, front-loaded sentences with no filler; the most important constraint (partial update, omissions preserved) leads. Slightly terse given the scope, but nothing is wasted.
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?
A nested 15-field mutation object with no annotations and no output schema warrants more disclosure than provided. Update semantics are covered, but the identifier parameter, authentication expectations, and what a successful patch returns are all missing.
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?
Schema description coverage is 0%, so the description must compensate. It gives one example field ('instructions') and the crucial semantics of omitted keys in the changes object, which is genuinely helpful. But the required 'code' parameter is never explained and the remaining ~14 updatable fields are left to schema names alone.
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?
States a specific verb (patch) and its defining behavior: only provided fields are updated. Combined with the tool name, an agent can tell this apart from create_address/delete_address/list_addresses, but it never names those siblings or explicitly says it modifies an existing address record.
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?
No when-to-use guidance and no explicit routing to alternatives. The reader must infer from the word 'patch' that this is the partial-update path versus create_address or delete_address; nothing in the text establishes that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sessionBRead-onlyInspect
Check that Anwani is connected for this user. Does not return internal IDs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the safe-read nature. The description adds a useful behavioral detail—'Does not return internal IDs'—but does not describe other traits such as what is returned, authentication requirements, or rate limits.
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?
Two short sentences with the primary action front-loaded. The second sentence adds relevant output context, though it could be slightly more specific.
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 simple, zero-parameter check with a readOnly annotation, the description is adequate but incomplete: it does not state what the tool returns (e.g., a boolean or status object), which would help an agent interpret the result in the absence of an output schema.
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?
There are zero parameters, so the schema carries no burden and the description has nothing to clarify. This meets the baseline of 4 for tools with no parameters.
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 states a specific verb (Check) and resource (Anwani connected for this user), making the purpose clear. It implicitly distinguishes from the address-manipulation siblings, though it doesn't explicitly name them or the tool's name is generic.
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?
No when-to-use guidance or alternatives are provided. The description only states what the tool does, leaving the agent to infer when this check should be performed relative to address operations.
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.
6 tool updates
- First observed
create_address - First observed
delete_address - First observed
list_addresses - First observed
patch_address - First observed
session - First observed
share_address
Related MCP Connectors
African intelligence infrastructure for AI apps, developers, and data products via MCP.
Create and manage CodeQR short links, QR codes, and analytics from any MCP client.
Generate, edit and track dynamic (editable) QR codes with scan analytics. Hosted MCP and REST API.
MCP server for OnceAsk, the AI-native current-address layer for people and agents.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for Nigeria's NIPOST digital postcode (NDAPS). Validate codes offline, look them up, autocomplete, find the postcode at a coordinate and resolve described addresses.55MIT
- AlicenseNot gradedqualityBmaintenanceSend and verify one-time passcodes over SMS, WhatsApp and Telegram from any MCP client. Ten tools: send, verify, extend, delivery status, account, usage report, and agent account creation with credit top-ups over a 402. Hosted endpoint or run locally.1MIT
- AlicenseNot gradedqualityBmaintenanceProvides a single MCP server endpoint that lets AI agents connect to many real third-party services through OAuth, with user approvals, activity logs, scoped read/write grants, and one-tap access removal.4 npmAGPL 3.0
- AlicenseAqualityBmaintenanceMCP server that searches Japanese addresses and returns their locations as polygons or points using the open 住所LOD dataset, enabling geocoding, reverse geocoding, batch GeoJSON export, and map visualization.81MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.