7Maps
Server Details
MCP server map (software, not geography): status, estimated tool risk, changes, tool search.
- Status
- Healthy
- Uptime
- 100.0% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 15 tools
Most tools target distinct lifecycle stages: discovery (find_tool, route), safety checks (road_conditions, preflight, watch, verify_lock), owner actions (submit_mcp_server, claim_mcp_server), and reporting/usage. The main overlap is between find_tool and route, and among the several server-checking tools, but their descriptions explicitly clarify when to use each.
All names use snake_case and are readable, with a mostly consistent verb-or-action style such as find_tool, route, watch, and verify_lock. Minor deviations like about_7maps, changes_since, road_conditions, and tool_card are noun or phrase forms rather than strict verb_noun names, but the overall convention remains predictable.
At 15 tools, the set sits at the upper end of a well-scoped surface but each tool covers a distinct part of MCP server discovery, validation, ownership, or reporting. No tool looks redundant enough to remove without losing a meaningful workflow.
The surface covers a strong lifecycle: finding tools, routing, checking server health and tool safety, preflighting calls, verifying approved tool hashes, reporting outcomes, submitting servers, claiming ownership, and viewing usage. Minor gaps remain around browsing or listing servers by category and richer server-detail inspection, but agents can work around them with find_tool, route, road_conditions, and tool_card.
Available Tools
15 toolsabout_7mapsWhat 7Maps is (no charge)ARead-onlyIdempotentInspect
Use this when deciding whether to use 7Maps, or when asked what it is: what the map covers right now, what each 7Maps tool answers, what a call costs, and how it saves an agent tokens, time and failed calls compared with connecting to MCP servers blind. Includes a live worked example on a real server from the map (changes daily), and, if you name a server, a quote of what 7Maps would save you on it (tokens and time) before you pay. No charge.
| Name | Required | Description | Default |
|---|---|---|---|
| server | No | A server you are considering: get a quote of the tokens and time 7Maps would save on it, before paying |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety bar is low. The description adds genuinely useful behavior beyond them: the call is free ("No charge", reinforced by the title), the worked example changes daily, and naming a server yields a savings quote before payment. Missing rate/return-format detail keeps it from a 5.
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 usage trigger is front-loaded in the first clause, and the remaining text enumerates concrete deliverables (coverage, per-tool answers, cost, savings, example, quote). It is dense but every clause carries distinct information; the nested commas make it slightly heavy for a single long sentence pair.
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?
There is no output schema, so the description must carry the return contract, and it does: it lists exactly what a caller gets back (map coverage, tool-by-tool answers, costs, savings comparison, live example, optional quote). Only the freshness/pagination handling of the whole response is left unstated.
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?
With 1 parameter at 100% schema coverage, the schema already documents `server` fully, including its optionality and purpose. The description largely restates it (quote of tokens/time saved on a named server before paying) without adding format, constraints, or fallback behavior, so 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 states a specific role: it explains what 7Maps is, what the map covers, what each tool answers, call costs, and token/time savings, plus a worked example and optional per-server quote. That is far more than a restatement of the name. It never names a sibling tool to differentiate itself (e.g. tool_card, which could also describe tools), so it stops short of a 5.
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?
"Use this when deciding whether to use 7Maps, or when asked what it is" gives an explicit adoption condition rather than implying usage. It does not state when NOT to call it or name alternative informational tools, so it lacks the exclusions/explicit alternatives that would earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
changes_sinceWhat changed on my MCP servers (7Maps)ARead-onlyIdempotentInspect
Use this to check all the MCP servers you depend on in one call instead of one by one: give up to 50 servers and the date of your last check, and get only what changed since then (outages, recoveries, tools added, removed or changed, risk increases, silent changes). Most answers are "nothing changed". Paid per call (see list_paid_tools). Reads the map only.
| Name | Required | Description | Default |
|---|---|---|---|
| since | Yes | Date of your last check (YYYY-MM-DD); up to 30 days back | |
| servers | Yes | Server URLs or official registry names | |
| last_trip | No | Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; accepted reports from a paying wallet earn calls at no charge. | |
| license_key | No | A 7IT monthly plan license key, if you have one; otherwise pay per call with x402 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world. The description adds the billing model (paid per call, x402 vs license_key), that it 'reads the map only' (no live probing of servers), and the high likelihood of an empty result. It does not state rate limits or the 30-day window itself, which lives in the schema.
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?
Front-loaded with the use case and batched value proposition, followed by the cost caveat and read-only note. Dense but every clause carries information; only the 'instead of one by one' phrasing is slightly redundant with the batch framing.
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?
There is no output schema, so the description carries the return-value burden and does so by listing the change categories (outages, recoveries, tool adds/removes/changes, risk increases, silent changes). The nested last_trip reporting object is fully documented in the schema, and payment handling is covered. Slightly thin on the shape/format of the returned delta.
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 100%, so the schema already documents servers, since, last_trip, and license_key in detail, including the 30-day lookback and 50-item cap. The description echoes the two key parameters but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
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: check what changed on MCP servers, in a single batch call instead of one by one. The batch framing distinguishes it from per-server siblings like my_server_report or watch, though no sibling is named directly. The parenthetical enumeration of change types makes the scope 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?
Gives clear context: use it with up to 50 servers plus your last check date to get a delta, and it names list_paid_tools for the pricing path. It also sets the expectation that most answers are 'nothing changed'. No explicit when-not or alternative-tool guidance beyond the one-by-one contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_mcp_serverVerify ownership of an MCP server on 7MapsAIdempotentInspect
Use this when the person you work for owns or runs an MCP server that is on the 7Maps map and wants its page to show it is owner verified, add a short note for agents (rate limits, sign-up, what the tools are for), or get a live status badge for their README. Verified owners' servers are checked every 5 minutes (uptime on the page and badge), and with alert_url the owner gets a message when the server stops answering and when it is back. First call returns the proof options (a line in /.well-known/7maps-verify.txt on the server's host, a DNS TXT record, or for io.github registry names a file in the GitHub repo); after one is in place, call again to confirm. The first verification returns an owner secret, shown once: keep it, because later changes to an already verified server (note, alerts) need it as owner_secret. If it is lost, call with recover true, put the one-time code on the host, then call with recover_check. Verifying does not change how the server is measured or ranked. No charge.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional plain-text note from the owner, no links, up to 280 characters | |
| server | Yes | The MCP server address as it appears on its 7Maps page | |
| recover | No | Lost the owner secret: true returns a one-time code to put on the host, and a check value | |
| alert_url | No | Optional: where to send down and up alerts. An ntfy topic for phone push without email (https://ntfy.sh/<hard-to-guess topic, at least 10 characters>, a self-hosted https://ntfy.<domain>/<topic>, or ntfy:https://<host>/<topic>), a Slack incoming webhook (https://hooks.slack.com/services/...), a Discord webhook (https://discord.com/api/webhooks/...), or any https webhook that receives JSON. Stored encrypted, saved only once ownership is proven; a test message is sent on save. An empty string turns alerts off. | |
| owner_secret | No | The owner secret returned once at the first verification. Needed to change an already verified server. | |
| recover_check | No | The check value from the recover step, once its code is on the host |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses the 5-minute re-check cadence, alert delivery on down/up via alert_url, that the owner secret is shown only once and required for later edits, and the one-time-code recovery mechanics. This is rich behavioral context an agent cannot infer from readOnlyHint/idempotentHint alone.
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?
It is a dense single paragraph but front-loads the trigger condition and every sentence carries needed information about the multi-step verification, recovery, and alerting. It could be more scannable with structure, but given the tool's complexity little 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?
With no output schema, the description compensates by explaining return values (proof options on first call, owner secret shown once) and the full call sequence. Nothing an agent needs to invoke this 6-parameter, multi-step tool correctly is 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 100%, so the schema already documents each parameter and the baseline is 3. The description adds genuine value by explaining the sequencing and dependency between owner_secret, recover, and recover_check that the flat schema cannot convey.
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 and resource (verify/claim ownership of an MCP server on 7Maps) and frames the trigger as the owner wanting a verified page, agent note, or status badge. It is clearly distinguishable from siblings like submit_mcp_server, my_server_report, and verify_lock.
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?
It gives explicit when-to-use conditions, the exact multi-step flow (first call returns proof options, call again to confirm), and the alternative recovery path (recover true, then recover_check). It even clarifies what the tool does NOT do (does not change measurement/ranking) and that there is no charge.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_toolFind an MCP tool for a job (7Maps)ARead-onlyIdempotentInspect
Use this when you need a tool for a job and do not know which MCP server has one: searches every tool of every public MCP server on the 7Maps map (over 200,000 tools, probed daily) and returns the best matches with an automated estimate of what each tool can do (read-only, changes data, high risk), whether its server is answering now, its handshake time, the tokens its tool list costs to load, and a page to check it. Filter to read-only tools, servers answering now, a latency or token ceiling. Copies of the same tool on several servers are collapsed. No charge. To have 7Maps pick one server and tool for you with alternatives, use route.
| Name | Required | Description | Default |
|---|---|---|---|
| job | Yes | What the tool should do, in plain words, for example "send a transactional email" or "query a postgres database" | |
| may | No | What the tool may do: read = read-only only; change = read or change data; any = include high-risk tools (default any) | |
| limit | No | How many results (default 10) | |
| payment | No | Payment terms: any (default); free_only = only servers that declare no payment; paid_ok = servers that charge are fine, servers whose payment terms are unknown are left out. Paid servers show their declared price per call. | |
| task_type | No | Optional: the kind of work you are doing right now. Only this category is kept, never your task text | |
| agent_model | No | Optional: the model you run on, for example "claude-sonnet-5-5", "gpt-5", "llama3.2:3b". Anonymous; it helps 7Maps learn which servers work for which models | |
| answering_now | No | Only servers that answered with tools on the last check (default true) | |
| max_handshake_ms | No | ||
| max_tool_list_tokens | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| matched | Yes | |
| results | Yes | |
| tools_indexed | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, which already mark it as a safe read-only operation, the description discloses the search corpus size and freshness, the result metadata returned (read-only/change/high-risk estimate, server answering status, handshake time, token cost, page link), duplicate collapsing, and that there is no charge. This is unusually rich behavioral context for an agent deciding whether and how to invoke it.
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 definition is front-loaded with the core purpose and alternative, and most sentences earn their place by carrying useful selection or behavioral detail. It is dense and somewhat run-on, but not padded or repetitive.
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 complexity of searching over 200,000 tools and the presence of an output schema, the description is complete enough. It covers the search scope, filters, return-value highlights, deduplication behavior, cost, and the routing alternative that an agent needs to call it correctly.
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 78%, so the schema already documents most parameters well. The description adds some filter semantics by mentioning read-only tools, servers answering now, and latency or token ceilings, but it does not add meaning beyond the schema for parameters like job, limit, payment, task_type, or agent_model. Baseline 3 is appropriate given the high schema coverage.
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 and resource: search every tool on every public MCP server on the 7Maps map to find a tool for a job. It clearly distinguishes this broad-discovery tool from the sibling routing tool 'route', which picks one server and tool for the agent.
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?
It explicitly says when to use this tool: 'when you need a tool for a job and do not know which MCP server has one.' It also names the alternative ('route') and the condition that selects it, leaving little ambiguity about tool choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_paid_toolsPrices of the paid 7IT toolsARead-onlyIdempotentInspect
Use this before calling a paid 7IT tool, to see what each costs and how to pay: per call in USDC on Base via x402 (no account; for agents whose owner approved a budget in advance), or a monthly plan license key. No charge; returns prices, plans and payment details.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| open | Yes | |
| plans | Yes | |
| tools | Yes | |
| network | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety is covered. The description adds genuinely useful context beyond that: the call itself is free ("No charge"), payment is via x402/USDC on Base with no account required, and a license-key alternative exists. Return format is not described, but an output schema is present, so that gap is acceptable.
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 usage instruction is front-loaded in the first clause, followed by payment mechanics and the free-of-charge fact. The parenthetical about owner-approved budgets is dense but carries real information, and there is no filler sentence.
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 discovery tool with an output schema, the description supplies everything an agent needs: what it returns (prices, plans, payment details), when to call it, and how the two payment paths work. Nothing necessary is 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?
The tool takes zero parameters, which is the baseline-4 case per the rubric. The description adds no parameter detail, but there is nothing to document, so no gap exists.
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 and resource: it lists what each paid 7IT tool costs and the payment options (per-call USDC on Base via x402, or a monthly plan license key). The purpose is unambiguous. It does not explicitly contrast itself with any sibling tool, though none of the listed siblings appear to be pricing tools, so differentiation is largely unnecessary here.
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?
"Use this before calling a paid 7IT tool" gives an explicit trigger condition, which is strong context for when to call it. It also clarifies the prerequisite for the x402 path (an owner-approved budget, no account). It stops short of stating when NOT to use it or naming an alternative, so it falls just short of the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
my_7maps_usageMy 7Maps usage (personal key)ARead-onlyIdempotentInspect
Use this when the person you work for asks what 7Maps has done for them: calls made with their personal 7Maps key today, in the last 7 days and in the last 30 days, servers checked, an estimate of the tokens saved compared with finding the same thing out without 7Maps, failures avoided (servers not answering that were skipped, risk changes caught by watch or verify_lock, calls that would have failed) and the average response time. It reads the optional personal key sent with this connection (the X-7Maps-Key header); without one it says so in one line, since every 7Maps answer already states its own saving. Only that person's own counts. No charge.
| Name | Required | Description | Default |
|---|---|---|---|
| window | No | Which window to lead with: day (today), week (last 7 days) or month (last 30 days); all three are returned |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, not open-world), so the description earns credit for adding non-obvious behavior: it reads the optional X-7Maps-Key header, degrades to a one-line notice when absent, is scoped to one person, and is free of charge. It does not describe latency or failure modes of the read itself, keeping it out of 5 territory.
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 trigger condition is front-loaded and the metrics are enumerated in one pass with no filler or marketing language. It is a dense run-on sentence, though, with phrases like 'an estimate of the tokens saved compared with finding the same thing out without 7Maps' that could be tightened.
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?
With no output schema, the description carries the return-value burden and does so by listing every reported metric plus the no-key fallback, which is sufficient for an agent to call it correctly. It omits nothing critical, though it could note the response shape of the failure breakdown more concretely.
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 100% and the single enum parameter is fully documented there, so the baseline is 3. The description implies all three windows are returned ('today, in the last 7 days and in the last 30 days') but never mentions the 'window' parameter or its role in choosing which period leads the response.
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 names a specific verb-and-resource pairing (report personal 7Maps key usage) and enumerates exactly what is counted: calls, servers checked, token savings, failures avoided, average response time. Its scoping to 'that person's own counts' implicitly separates it from the server-wide sibling my_server_report, but no sibling is named explicitly, so it stops short of a 5.
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?
'Use this when the person you work for asks what 7Maps has done for them' gives an explicit triggering condition, and the fallback behavior without a key is spelled out. It does not name a competing tool (e.g. my_server_report or about_7maps) or any when-not-to-use condition, so it lacks the routing precision of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
my_server_reportWhat agents looked for around your MCP server (7Maps)ARead-onlyIdempotentInspect
Use this when the person you work for owns an MCP server on the 7Maps map and wants to know how AI agents look for servers like it: how often agents asked 7Maps for servers in its category in the last 7 or 30 days, how often this server was shown and picked, and, for a verified owner with owner_key, the words agents used, the servers picked instead, failure reasons agents reported, uptime, tool changes, and its token cost and handshake time against similar servers. Counts only, no agent identities. Without owner_key it returns the public numbers and how to verify ownership with claim_mcp_server. Read-only; never changes ranking or routing. No charge.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Window in days: 7 (default) or 30 | |
| server | Yes | The MCP server address as it appears on its 7Maps page, or its official registry name | |
| owner_key | No | The owner key returned to the verified owner by claim_mcp_server (the newest one; each verification issues a new key) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower; the description still adds real value by disclosing privacy scope ("Counts only, no agent identities"), the no-charge and no-routing-impact behavior, and that owner_key gates extra fields. It stops short of describing return shape or rate/refresh behavior, but it exceeds what the annotations alone convey.
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?
It is front-loaded with the use-condition, which is good, but the middle is a single long clause-chained sentence packing many metric types together. It is denser than it needs to be, and the metric list could be trimmed or bulleted 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?
No output schema exists, so the description must carry return-value meaning, and it does list what comes back for both the public and owner_key cases, including the fallback of how to verify ownership. It lacks anything on response size/pagination or the exact shape, leaving a small gap for a tool with no 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?
Schema coverage is 100%, so baseline is 3, but the description earns above baseline: it explains that owner_key (returned by claim_mcp_server) unlocks things like the words agents used, servers picked instead, failure reasons, uptime and tool changes, and that the 7/30-day window scopes the category counts. That is genuine semantic value beyond the schema text.
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-and-resource: it reports how agents search for and behave around a given MCP server on 7Maps, enumerating the metric families returned. It is clearly a server-owner analytics tool, though it never explicitly contrasts itself with close siblings like my_7maps_usage or my_server_report, so an agent must infer the boundary.
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?
"Use this when the person you work for owns an MCP server on the 7Maps map..." gives a clear triggering condition, and the owner_key branch tells the agent what to do when ownership is unverified, pointing at claim_mcp_server. There is no explicit when-not or exclusion against adjacent usage/admin siblings, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preflightWill this MCP call succeed? (7Maps)ARead-onlyIdempotentInspect
Use this right before calling a tool on an MCP server you have not used today, with the exact arguments you plan to send: checks that the server answers, whether it needs sign-in, that the tool still exists under that name, and that the arguments match the tool's input schema (required, types, allowed values, unknown keys). Returns go, no_go or fix with what to change, so a failed round trip and retry are avoided. Paid per check (see list_paid_tools). Never calls the server.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | Yes | The tool you plan to call | |
| server | Yes | The server URL or its official registry name | |
| arguments | No | The arguments you plan to send | |
| last_trip | No | Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; accepted reports from a paying wallet earn calls at no charge. | |
| license_key | No | A 7IT monthly plan license key, if you have one; otherwise pay per call with x402 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false. The description adds value beyond these by stating the cost model ("Paid per check (see list_paid_tools)"), the exact return vocabulary (go, no_go, fix), and that it "Never calls the server." That cost and output-shape disclosure goes past what the annotations provide.
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 tightly packed sentences: the first front-loads the usage trigger and the four checks, the second covers the return values, cost, and the no-server-call guarantee. No sentence is wasted or redundant with the schema.
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?
With no output schema, the description appropriately explains the verdict values (go/no_go/fix) and the surrounding workflow. It stops short of detailing what a fix payload contains beyond "what to change," a minor gap for a tool whose parameters are otherwise fully documented.
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 100%, including a fully documented nested last_trip object, so the schema already carries parameter meaning. The description only restates the arguments parameter ("the exact arguments you plan to send") and adds no syntax or format detail beyond the schema, so the baseline 3 applies.
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 names a specific verb and scope: it checks that an MCP server answers, whether sign-in is needed, that the tool still exists, and that arguments match the schema. This is a distinct capability no sibling (tool_card, find_tool, verify_lock) plainly duplicates, though it does not explicitly contrast itself with them. An agent can tell what the tool does without opening the schema.
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?
"Use this right before calling a tool on an MCP server you have not used today, with the exact arguments you plan to send" gives a clear triggering condition and timing. It also routes payment questions to list_paid_tools. There is no explicit when-not guidance, but the gating condition is precise enough to act on.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_roadReport how a call to an MCP server went (7Maps)AInspect
Use this after calling a tool on an MCP server (especially one 7Maps pointed you to) to report how it went: whether it worked, why not, how long it took, whether the result matched the description, and anything it did that you did not ask for. Fixed fields only, no open text. Reports from many agents become the server's rating and, once 7Maps confirms them, live incident alerts that every agent sees. You can also pass the same fields as last_trip on any paid 7Maps call. No charge.
| Name | Required | Description | Default |
|---|---|---|---|
| ms | No | How long the call took, in milliseconds | |
| ok | Yes | Whether the call did what you needed | |
| fail | No | If it failed: unreachable, auth, args, server_error, timeout, rate_limited or wrong_result | |
| tool | No | The tool you called | |
| server | Yes | The MCP server you called (URL or registry name) | |
| surprise | No | Anything the tool did that you did not ask for | |
| task_type | No | Optional: the kind of work you are doing right now. Only this category is kept, never your task text | |
| tools_hash | No | The tool_list_hash of the tool list you received, if you computed it as 7Maps does | |
| agent_model | No | Optional: the model you run on, for example "claude-sonnet-5-5", "gpt-5", "llama3.2:3b". Anonymous; it helps 7Maps learn which servers work for which models | |
| charged_usd | No | What the server charged, if anything | |
| result_tokens | No | About how many tokens the result was | |
| matched_description | No | Whether the result matched what the tool description promised |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag this as a non-read-only, non-destructive write; the description adds genuinely new context: no charge, fixed fields only with no open text, anonymity of agent_model, and that reports aggregate into server ratings and confirmed incident alerts visible to all agents. The downstream propagation and cost profile are the kind of traits annotations cannot express. It omits what happens to a malformed or duplicate report (idempotentHint is false).
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 front-loaded sentences that each carry information: usage trigger, reporting contract and privacy, then downstream effect and the alternative channel. The middle clause runs long and packs several ideas together, but nothing is padding.
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 12-parameter write tool with full schema coverage, no output schema and informative annotations, the description covers purpose, cost, anonymity, and downstream consequence. The remaining gap is error behavior — what happens if required fields are missing or the same report is sent twice (idempotentHint is false).
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 coverage is 100%, so the baseline is 3; the description earns a bump by framing the fields as questions the agent should answer (did it work, why not, how long, did the result match the description, did it do something unasked) and by flagging that only the task category is retained, never task text. It still adds no syntax or format guidance beyond the schema.
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 — report how a call to an MCP server went — and enumerates exactly what is reported (success, failure reason, latency, description match, surprises). This is clearly distinguishable from siblings like tool_card, preflight, or road_conditions, which supply ratings rather than accept them.
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 an explicit trigger ('after calling a tool on an MCP server, especially one 7Maps pointed you to') and names an alternative channel ('you can also pass the same fields as last_trip on any paid 7Maps call'). It does not state when reporting is unnecessary or discouraged, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
road_conditionsCondition of an MCP server before connecting (7Maps)ARead-onlyIdempotentInspect
Use this before connecting to or calling any MCP server you have not used today, or before installing one that runs locally: is it up, does it need sign-in, how fast it answers, how many of its tools are read-only, need approval or are high risk (delete, pay, run code; automated estimates from the public tool descriptions and annotations), when its tools last changed, and the chance the next call works, from a daily check of every remote server in the official MCP registry and 30 days of history. For a local server (npm or PyPI package): version, maintainers, publisher, install scripts and supply-chain changes. Paid per check (see list_paid_tools). Reads the map only; never calls the server.
| Name | Required | Description | Default |
|---|---|---|---|
| server | Yes | The server URL (https://mcp.example.com/mcp), its official registry name, or npm:<package> / pypi:<package> for a server that runs locally | |
| last_trip | No | Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; accepted reports from a paying wallet earn calls at no charge. | |
| task_type | No | Optional: the kind of work you are doing right now. Only this category is kept, never your task text | |
| agent_model | No | Optional: the model you run on, for example "claude-sonnet-5-5", "gpt-5", "llama3.2:3b". Anonymous; it helps 7Maps learn which servers work for which models | |
| license_key | No | A 7IT monthly plan license key, if you have one; otherwise pay per call with x402 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive; the description adds critical context beyond them, including 'paid per check', 'reads the map only; never calls the server', the daily-check cadence and 30-day history, and that risk/cost figures are automated estimates from public descriptions. These are behavior facts an agent cannot infer from the schema.
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 primary usage constraint is front-loaded, which is good, but the body is a single dense run-on sentence packing many clauses (risk categories, history window, local-server fields) that is harder to scan than separate sentences would be. Content earns its place; structure does not.
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 5-parameter, nested-object tool with no output schema, the description is thorough about what it reports and the cost model. It stops short of describing the shape of the response (fields, confidence framing), which an agent would need to parse results, but overall it is complete enough to call correctly.
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 coverage is 100%, so each parameter is already documented, including the server identifier formats and the last_trip sub-fields. The description adds only marginal semantics (contrasting remote vs local server inputs) and does not explain optional parameters like task_type or license_key beyond the schema. 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 names a specific verb+resource ('road_conditions' as the condition of an MCP server) and enumerates exactly what is reported: uptime, sign-in need, latency, read-only/approval/high-risk tool counts, tool-change timestamps, and success probability. It is clearly differentiated from siblings like preflight or tool_card by scoping to 'before connecting to any server you have not used today'.
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?
Explicit trigger conditions are given: before connecting to or calling an unseen server, or before installing a locally-run package. It lacks named alternatives (e.g. when to prefer preflight or tool_card instead), so the routing is not fully closed, but the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
routeSafest MCP server for a task (7Maps)ARead-onlyIdempotentInspect
Use this when you need a tool for a task and do not know which MCP server to use, or when several could do it: finds servers whose tools match the task and ranks them by the chance the call works, how stable the server is, and least privilege (a server that can do less harm than another is preferred when both can do the task). Returns the best server and tool, alternatives and servers to avoid. Paid per task (see list_paid_tools). Reads the map only.
| Name | Required | Description | Default |
|---|---|---|---|
| need | No | How much the task must be allowed to do: read only, change something, or a high-risk action such as payments or deletion. Guessed from the task when omitted | |
| task | Yes | What you need to do, for example "send a transactional email" or "search company records" | |
| payment | No | Payment terms: any (default); free_only = only servers that declare no payment; paid_ok = servers that charge are fine, servers whose payment terms are unknown are left out. Paid servers show their declared price per call. | |
| last_trip | No | Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; accepted reports from a paying wallet earn calls at no charge. | |
| task_type | No | Optional: the kind of work you are doing right now. Only this category is kept, never your task text | |
| agent_model | No | Optional: the model you run on, for example "claude-sonnet-5-5", "gpt-5", "llama3.2:3b". Anonymous; it helps 7Maps learn which servers work for which models | |
| license_key | No | A 7IT monthly plan license key, if you have one; otherwise pay per call with x402 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description usefully reinforces this with 'Reads the map only' while adding non-obvious facts: pay-per-task billing, the pointer to list_paid_tools, and the shape of the return (best match, alternatives, servers to avoid). It does not mention rate limits, latency, or what happens when no server matches.
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?
It is front-loaded with the trigger condition and the ranking logic before the cost and return-value notes; nearly every clause carries information. The long parenthetical about least privilege is dense but earns its place by defining the ranking criterion.
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?
With no output schema, the description correctly compensates by naming what is returned (best server and tool, alternatives, servers to avoid). It also flags billing and the feedback loop. The remaining gap is behavior when nothing matches or when the paid path is unavailable, which matters for a 7-parameter, nested-input tool.
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 coverage is 100% with rich enum and per-field descriptions, so the schema already carries parameter meaning. The description adds the conceptual basis for the ranking (works-chance, stability, least privilege) that motivates last_trip and need, and mentions the payment model behind the payment param, but gives no per-parameter detail of its own. Baseline 3 applies.
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 chain (finds matching servers, ranks them, returns the best server and tool) and the exact trigger ('you need a tool for a task and do not know which MCP server to use'). The ranking criteria (works-chance, stability, least privilege) make it distinguishable from lookup siblings like find_tool or tool_card even without naming them.
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?
It gives clear when-to-use conditions: no known server, or several candidates. It also discloses the cost model and points to list_paid_tools for pricing. It stops short of naming sibling alternatives (find_tool, preflight, tool_card) or stating when not to use this router, so an agent must infer the boundary itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_mcp_serverPut a new MCP server on the 7Maps mapAIdempotentInspect
Use this when someone has built or runs an MCP server that is not in the official MCP registry (for example a small business's own server) and wants AI agents to be able to find it, or asks how to get their server listed. Give the server address, or just the business's domain and the usual endpoint paths are tried. The server is observed every 6 hours for 7 days; if it answers reliably, keeps its tools stable and describes every tool, it joins the 7Maps map that agents use to choose servers. Placement cannot be bought. Returns the status page and an optional owner-verification token. No charge.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The MCP server address, or the business domain (example.com) | |
| about | No | One sentence: what the business does and for whom | |
| charges | No | Whether the server charges agents (x402 or a subscription) | |
| country | No | Where the business serves customers | |
| category | No | What the business does; agents also see the category its tools show | |
| language | No | Main language of the tools and their data |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations by disclosing the asynchronous acceptance process (observed every 6 hours for 7 days), the criteria for listing (reliable answers, stable tools, every tool described), that placement cannot be bought, that there is no charge, and that the call returns a status page plus an optional owner-verification token. The idempotentHint is corroborated by the 'tried endpoint paths' fallback behavior.
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?
Front-loaded with the usage trigger, then the input flexibility, then the process and outcome — a logical order with almost no filler. It is dense but every sentence carries information; only the 'No charge' closing is slightly redundant with 'Placement cannot be bought'.
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 submission tool with no output schema, the description supplies everything an agent needs: eligibility, input fallback, observation window, acceptance criteria, cost, and the shape of the return (status page + optional verification token). Nothing material is left unexplained.
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 100%, so the baseline is 3, but the description adds genuine meaning: the url parameter accepts either a full server address or just a business domain, in which case 'the usual endpoint paths are tried'. That fallback semantics is not derivable from the schema's maxLength/minLength constraints.
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 and resource — putting a new MCP server on the 7Maps map — and scopes it to servers 'not in the official MCP registry', which implicitly separates it from the listing/report siblings. It never names a sibling (e.g. claim_mcp_server or my_server_report) explicitly, so an agent still has to infer which of the related server tools applies.
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?
Clear triggering conditions are given: 'Use this when someone has built or runs an MCP server that is not in the official MCP registry... or asks how to get their server listed.' That covers the when. It does not state when NOT to use it or point to the alternative (claim_mcp_server) for servers already listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_cardCompact tool cards for an MCP server (7Maps)ARead-onlyIdempotentInspect
Use this instead of loading a server's full tool definitions when you only need to choose a tool or prepare a call: one compact card per tool (what it does, its arguments with required ones marked *, risk level and side effects) plus a hash of the full definition. Usually 70 to 90% fewer tokens than the server's own tool list. Optionally only the named tools. Paid per server (see list_paid_tools). Reads the map only.
| Name | Required | Description | Default |
|---|---|---|---|
| tools | No | Only these tools; all when omitted | |
| server | Yes | The server URL or its official registry name | |
| last_trip | No | Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; accepted reports from a paying wallet earn calls at no charge. | |
| license_key | No | A 7IT monthly plan license key, if you have one; otherwise pay per call with x402 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower; the description adds genuinely useful context beyond them: 'Reads the map only', the paid-per-server model with a pointer to list_paid_tools, and the token-saving magnitude (70-90% fewer). It also sketches the card contents, though it omits return shape details.
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?
Four front-loaded sentences, each carrying distinct information (what it returns, why to prefer it, the optional filter, the cost/read-only note). Dense but without filler; the parenthetical list of card fields is the only slightly breathless part.
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 4-parameter read-only tool with no output schema, the description covers what the cards contain (compensating for the missing output schema), the optional tool filter, the cost model, and the read-only nature. The nested last_trip object is fully documented in the schema, so nothing critical is 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 100%, so the baseline is 3. The description's 'Optionally only the named tools' merely restates the schema's own description for tools, and the mention of payment lightly touches license_key. The last_trip object's rich schema text is not supplemented in the 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 states a specific verb and resource: it returns one compact card per tool for a given server, containing what the tool does, its arguments (required marked *), risk level and side effects, plus a definition hash. It distinguishes itself from 'loading a server's full tool definitions' but does not explicitly differentiate itself from siblings like find_tool or preflight.
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?
It gives a clear condition and an alternative: 'Use this instead of loading a server's full tool definitions when you only need to choose a tool or prepare a call.' It also routes to list_paid_tools for the payment model. There is no explicit when-not-to-use or sibling comparison beyond the generic full-tool-list alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_lockVerify a pinned tool list (7Maps)ARead-onlyIdempotentInspect
Use this to check that an MCP server's tools are still the ones a person approved, like a lockfile: pass the lock you saved at approval (tool name to hash, as returned by watch or tool_card) and get, per tool, unchanged, changed (with any rise in risk), removed or new. Catches rug pulls, where a tool changes after approval, which MCP clients do not re-ask about. Paid per server (see list_paid_tools). Reads the map only.
| Name | Required | Description | Default |
|---|---|---|---|
| lock | Yes | Tool name to hash, saved at approval | |
| server | Yes | The server URL or its official registry name | |
| last_trip | No | Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; accepted reports from a paying wallet earn calls at no charge. | |
| license_key | No | A 7IT monthly plan license key, if you have one; otherwise pay per call with x402 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, so the bar is lower, and the description adds genuinely useful context: it is paid per server, it 'reads the map only' (no server-side mutation), and it explains the per-tool result categories including risk rises. It does not describe failure modes or what happens if the lock is stale.
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?
Dense but front-loaded: the purpose and the lock input appear first, followed by the output categories, the rationale (rug pulls), pricing, and the read-only guarantee. No sentence is wasted, though the run-on structure packs several ideas into one long sentence.
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?
With no output schema, the description compensates by enumerating the per-tool result states (unchanged, changed with risk rise, removed, new) and the cost/auth model is covered in the schema. For a nested-object, 4-parameter tool this is nearly complete, missing only edge-case behavior for malformed or partial locks.
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 coverage is 100% and each parameter carries its own description, so the schema does the heavy lifting. The description adds provenance for the lock object (tool name to hash, as returned by watch or tool_card) but says nothing about server, last_trip, or license_key beyond what the schema already documents.
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 (verify/check) and resource (an MCP server's pinned tool list) and explicitly frames it as a lockfile comparison against a previously approved state. It differentiates itself from siblings by naming watch and tool_card as the sources of the lock and list_paid_tools for pricing.
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 trigger scenario (confirming tools are still the ones a person approved, catching rug pulls after approval) and points to the siblings that produce the lock input. It does not spell out a when-not-to-use case or an alternative verifier, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watchHas an approved MCP server changed? (7Maps)ARead-onlyIdempotentInspect
Use this before reusing an MCP server that a person approved earlier: tells whether its tools changed since that date, and whether any change raised the risk (a tool that now deletes, pays or runs code), including silent changes made without a new server version. If the risk went up, ask the person to approve again before calling it. Paid per check (see list_paid_tools). Reads the map only.
| Name | Required | Description | Default |
|---|---|---|---|
| server | Yes | The server URL, its official registry name, or npm:<package> / pypi:<package> | |
| last_trip | No | Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; accepted reports from a paying wallet earn calls at no charge. | |
| approved_at | Yes | When the person approved this server (YYYY-MM-DD) | |
| license_key | No | A 7IT monthly plan license key, if you have one; otherwise pay per call with x402 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so safety is covered; the description adds real context on top – silent changes without a new version, risk escalation semantics, a per-check charge routed through list_paid_tools, and the 'reads the map only' scope. Lacks detail on return format, but that is secondary here.
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?
Dense but front-loaded: usage trigger first, then what it returns, then the escalation consequence, then cost and scope. Every sentence carries weight, though the risk-example parenthetical makes the middle clause slightly heavy.
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 four-parameter tool with a nested object and no output schema, the description conveys what the result substantively contains (changed tools, risk movement) and the cost/scope constraints. It stops short of describing the exact response fields, which is the only meaningful 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?
Schema description coverage is 100%, so all four parameters including the nested last_trip object are already documented. The description only lightly reinforces 'since that date' and the paid/license dimension; it adds little syntax or meaning beyond the schema, matching the baseline 3.
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 – it reports whether an approved MCP server's tools changed and whether risk rose, with concrete examples of risky change (deletes, pays, runs code). It does not, however, distinguish itself from close siblings like changes_since or verify_lock, so an agent cannot tell them apart from the text alone.
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?
Explicit trigger: 'Use this before reusing an MCP server that a person approved earlier,' plus a follow-up rule ('If the risk went up, ask the person to approve again before calling it'). Strong when-to-use guidance, but it names no alternative tool for the adjacent cases (e.g. when there is no prior approval).
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.
4 tool updates
- Changed
find_tool2 fields changed- added
Input schema / properties / agent_modelAdded value: +{ + "description": "Optional: the model you run on, for example \"claude-sonnet-5-5\", \"gpt-5\", \"llama3.2:3b\". Anonymous; it helps 7Maps learn which servers work for which models", + "maxLength": 80, + "type": "string" +} - added
Input schema / properties / task_typeAdded value: +{ + "description": "Optional: the kind of work you are doing right now. Only this category is kept, never your task text", + "enum": [ + "coding", + "research", + "data", + "communication", + "commerce", + "devops", + "content", + "personal_assistant", + "testing", + "other" + ], + "type": "string" +}
- Changed
report_road2 fields changed- added
Input schema / properties / agent_modelAdded value: +{ + "description": "Optional: the model you run on, for example \"claude-sonnet-5-5\", \"gpt-5\", \"llama3.2:3b\". Anonymous; it helps 7Maps learn which servers work for which models", + "maxLength": 80, + "type": "string" +} - added
Input schema / properties / task_typeAdded value: +{ + "description": "Optional: the kind of work you are doing right now. Only this category is kept, never your task text", + "enum": [ + "coding", + "research", + "data", + "communication", + "commerce", + "devops", + "content", + "personal_assistant", + "testing", + "other" + ], + "type": "string" +}
- Changed
road_conditions2 fields changed- added
Input schema / properties / agent_modelAdded value: +{ + "description": "Optional: the model you run on, for example \"claude-sonnet-5-5\", \"gpt-5\", \"llama3.2:3b\". Anonymous; it helps 7Maps learn which servers work for which models", + "maxLength": 80, + "type": "string" +} - added
Input schema / properties / task_typeAdded value: +{ + "description": "Optional: the kind of work you are doing right now. Only this category is kept, never your task text", + "enum": [ + "coding", + "research", + "data", + "communication", + "commerce", + "devops", + "content", + "personal_assistant", + "testing", + "other" + ], + "type": "string" +}
- Changed
route2 fields changed- added
Input schema / properties / agent_modelAdded value: +{ + "description": "Optional: the model you run on, for example \"claude-sonnet-5-5\", \"gpt-5\", \"llama3.2:3b\". Anonymous; it helps 7Maps learn which servers work for which models", + "maxLength": 80, + "type": "string" +} - added
Input schema / properties / task_typeAdded value: +{ + "description": "Optional: the kind of work you are doing right now. Only this category is kept, never your task text", + "enum": [ + "coding", + "research", + "data", + "communication", + "commerce", + "devops", + "content", + "personal_assistant", + "testing", + "other" + ], + "type": "string" +}
2 tool updates
- Changed
claim_mcp_server3 fields changed- added
Input schema / properties / owner_secretAdded value: +{ + "description": "The owner secret returned once at the first verification. Needed to change an already verified server.", + "maxLength": 80, + "type": "string" +} - added
Input schema / properties / recoverAdded value: +{ + "description": "Lost the owner secret: true returns a one-time code to put on the host, and a check value", + "type": "boolean" +} - added
Input schema / properties / recover_checkAdded value: +{ + "description": "The check value from the recover step, once its code is on the host", + "maxLength": 700, + "type": "string" +}
- Changed
my_server_report1 field changed- changed
Input schema / properties / owner_key / descriptionPrevious value: -"The owner key returned to the verified owner by claim_mcp_server"New value: +"The owner key returned to the verified owner by claim_mcp_server (the newest one; each verification issues a new key)"
2 tool updates
- Changed
find_tool1 field changed- added
Input schema / properties / paymentAdded value: +{ + "description": "Payment terms: any (default); free_only = only servers that declare no payment; paid_ok = servers that charge are fine, servers whose payment terms are unknown are left out. Paid servers show their declared price per call.", + "enum": [ + "any", + "free_only", + "paid_ok" + ], + "type": "string" +}
- Changed
route1 field changed- added
Input schema / properties / paymentAdded value: +{ + "description": "Payment terms: any (default); free_only = only servers that declare no payment; paid_ok = servers that charge are fine, servers whose payment terms are unknown are left out. Paid servers show their declared price per call.", + "enum": [ + "any", + "free_only", + "paid_ok" + ], + "type": "string" +}
1 tool update
- Added
my_7maps_usage
7 tool updates
- Changed
changes_since1 field changed- changed
Input schema / properties / last_trip / descriptionPrevious value: -"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 call at no charge."New value: +"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; accepted reports from a paying wallet earn calls at no charge."
- Changed
preflight1 field changed- changed
Input schema / properties / last_trip / descriptionPrevious value: -"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 call at no charge."New value: +"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; accepted reports from a paying wallet earn calls at no charge."
- Changed
road_conditions1 field changed- changed
Input schema / properties / last_trip / descriptionPrevious value: -"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 call at no charge."New value: +"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; accepted reports from a paying wallet earn calls at no charge."
- Changed
route1 field changed- changed
Input schema / properties / last_trip / descriptionPrevious value: -"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 call at no charge."New value: +"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; accepted reports from a paying wallet earn calls at no charge."
- Changed
tool_card1 field changed- changed
Input schema / properties / last_trip / descriptionPrevious value: -"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 call at no charge."New value: +"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; accepted reports from a paying wallet earn calls at no charge."
- Changed
verify_lock1 field changed- changed
Input schema / properties / last_trip / descriptionPrevious value: -"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 call at no charge."New value: +"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; accepted reports from a paying wallet earn calls at no charge."
- Changed
watch1 field changed- changed
Input schema / properties / last_trip / descriptionPrevious value: -"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 call at no charge."New value: +"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; accepted reports from a paying wallet earn calls at no charge."
10 tool updates
- Changed
changes_since1 field changed- changed
Input schema / properties / last_trip / descriptionPrevious value: -"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 free call."New value: +"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 call at no charge."
- Changed
claim_mcp_server1 field changed- added
Input schema / properties / alert_urlAdded value: +{ + "description": "Optional: where to send down and up alerts. An ntfy topic for phone push without email (https://ntfy.sh/<hard-to-guess topic, at least 10 characters>, a self-hosted https://ntfy.<domain>/<topic>, or ntfy:https://<host>/<topic>), a Slack incoming webhook (https://hooks.slack.com/services/...), a Discord webhook (https://discord.com/api/webhooks/...), or any https webhook that receives JSON. Stored encrypted, saved only once ownership is proven; a test message is sent on save. An empty string turns alerts off.", + "maxLength": 600, + "type": "string" +}
- Added
find_tool - Added
my_server_report - Changed
preflight1 field changed- changed
Input schema / properties / last_trip / descriptionPrevious value: -"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 free call."New value: +"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 call at no charge."
- Changed
road_conditions1 field changed- changed
Input schema / properties / last_trip / descriptionPrevious value: -"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 free call."New value: +"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 call at no charge."
- Changed
route1 field changed- changed
Input schema / properties / last_trip / descriptionPrevious value: -"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 free call."New value: +"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 call at no charge."
- Changed
tool_card1 field changed- changed
Input schema / properties / last_trip / descriptionPrevious value: -"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 free call."New value: +"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 call at no charge."
- Changed
verify_lock1 field changed- changed
Input schema / properties / last_trip / descriptionPrevious value: -"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 free call."New value: +"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 call at no charge."
- Changed
watch1 field changed- changed
Input schema / properties / last_trip / descriptionPrevious value: -"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 free call."New value: +"Optional: how your last call to an MCP server went (the one 7Maps pointed you to). It keeps the map honest; 5 accepted reports from a paying wallet earn 1 call at no charge."
12 tool updates
- First observed
about_7maps - First observed
changes_since - First observed
claim_mcp_server - First observed
list_paid_tools - First observed
preflight - First observed
report_road - First observed
road_conditions - First observed
route - First observed
submit_mcp_server - First observed
tool_card - First observed
verify_lock - First observed
watch
Related MCP Connectors
Independent trust scores, tool surfaces and change history for MCP servers.
Search 70,510 indexed MCP servers, install-risk scoring and Ed25519-signed Agent Trust Cards.
Search the official MCP registry: 17,000+ servers with trust grades, stars, tools, install config.
Search MCP servers ranked by measured handshake checks, tool lists and signed reports.
Related MCP Servers
- AlicenseAqualityDmaintenanceSearch and evaluate MCP servers from your AI agent: quality grades, live verification status, install commands and client compatibility for 5,000+ servers.425 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables searching and retrieving detailed information about MCP servers from the official MCP registry. Provides tools to list servers with filtering options and get comprehensive details about specific servers.15 npm3MIT
- AlicenseAqualityDmaintenanceAn MCP server for searching and exploring MCP servers from the Glama MCP directory. This server provides tools to search for MCP servers, get detailed information about specific servers, and explore available server attributes using the Glama MCP API.33MIT
- AlicenseCqualityDmaintenanceEasily find MCP servers using our MCP registry. Search with natural language.16MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.