isIPsafe
Server Details
Check whether an IP address or network is malicious and report abusive IPs to isIPsafe.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- isipsafe/isipsafe-python
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 10 tools
Each tool targets a distinct resource or action: single address, CIDR block, ASN, country, blocklist, statistics, categories, reporting, and product info. The main risk is confusion between check_network (a CIDR block) and get_network_report (an autonomous system), and between check_ip and get_reports (summary vs. individual reports), though descriptions make the boundaries clear.
All names use snake_case with a predictable verb_noun shape (check_ip, get_blocklist, list_categories, report_ip). The only deviation is about_isipsafe, which is not a verb_noun pattern, but it is a recognizable product-info convention.
Ten tools is well within the sweet spot for a domain-specific reputation API, and each tool maps to a distinct lookup or action. No filler tools are present.
The surface covers single-address checks, subnet and ASN analysis, country views, blocklist retrieval, statistics, categories, and report submission—essentially the full read/write lifecycle for IP reputation. Minor gaps exist: no delisting request tool (only described in about_isipsafe) and no bulk multi-address check, though agents can work around these.
Available Tools
10 toolsabout_isipsafeAbout isIPsafeARead-onlyInspect
Explains isIPsafe itself. Use it for any question about the product rather than guessing: what it is and who it is for, its mission and aims, how reports and the confidence score work, plans, pricing and limits, how to get started, how to get an address delisted, privacy, and who runs it. Needs no API key and uses no allowance.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | What to read about. overview: What the product is, who it is for and what it offers. Start here. mission: Why it exists, what it aims for, its principles and where it is heading. how_it_works: How reports become a confidence score, what the score means, and where the data comes from. plans: What is free, the limits of each plan, Enterprise, and what the data may be used for. getting_started: How to look addresses up, report attacks, use the blocklist, the API, the integrations and MCP. delisting: What to do about an address that is listed, whether by mistake or for good reason. privacy: What is stored about reporters and visitors, public profiles, GDPR and deleting an account. company: The team, the company behind the service, contact details and legal documents. faq: Every question on the FAQ page: basics, reporting, scores, the blocklist and API, delisting and privacy. | overview |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint=false, so safety is covered; the description adds genuinely new operational facts an agent would otherwise have to discover: no API key required and no allowance consumed. It does not describe the shape of the returned content, which is the only remaining gap for a static-content tool.
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 purpose sentence is front-loaded and the usage instruction follows immediately; there is no filler. The long topic enumeration partially duplicates the enum values, which is mild redundancy but also serves as fast routing signal.
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 single optional enum parameter, read-only, no output schema tool, the description covers purpose, usage, cost/auth behavior, and full topical scope. Nothing an agent needs in order to call it 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% and each enum value is already explained in detail in the schema, so the description's parallel topic list adds little meaning beyond it. Baseline 3 is correct when the parameter documentation is already self-sufficient.
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?
"Explains isIPsafe itself" names a specific verb (explains) and resource (the product documentation), and the enumerated content areas make it unmistakably distinct from every sibling, which all operate on IP/network data. An agent can tell at a glance that this is the self-documentation tool rather than a lookup.
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 it for any question about the product rather than guessing" is an explicit use condition with an anti-pattern named, and the topic list clarifies the scope of those questions. It stops short of naming a sibling alternative or an exclusion (e.g., 'not for checking an address – use check_ip'), so it falls just short of the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_ipCheck an IP addressARead-onlyInspect
Reputation of one IPv4 or IPv6 address: abuse confidence score (0-100, 75+ is on the blocklist), number of reports and distinct reporters, attack categories, country, network owner (ASN), Tor exit status and a link to its page. Set verbose to include the latest reports with their comments.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IPv4 or IPv6 address, e.g. 203.0.113.7 | |
| verbose | No | Include up to 100 recent reports with comments | |
| maxAgeInDays | No | Only count reports from the last N days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: the 0-100 scoring scale with 75+ as the blocklist threshold, the fact that verbose pulls in report comments, and a pointer to the web page link. It omits rate limits, auth requirements, and what happens for an unknown or malformed IP.
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 sentences, both front-loaded with the highest-value information: what is returned, then how to expand it. No filler, no restatement of the title.
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 field enumeration in the description does the heavy lifting of explaining return values, which is exactly right. The gap is edge-case behavior: not-found IPs, invalid input, and whether results are cached or rate limited are unaddressed.
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 all three parameters are already documented in structured fields, which sets the baseline at 3. The description restates the verbose behavior and adds the meaning of the score threshold, but says nothing about maxAgeInDays (the 30-day default window) that would help an agent reason about result freshness.
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+resource ('Reputation of one IPv4 or IPv6 address') and scopes it to a single address, which implicitly separates it from the sibling check_network that handles networks. It goes further by enumerating what reputation data means here (abuse confidence score, reporters, categories, country, ASN, Tor exit), so an agent knows exactly what it gets.
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?
Usage is implied rather than stated: nothing says 'use this for a single IP, use check_network for a CIDR range' or when to prefer get_reports/get_network_report. The only explicit conditional is 'Set verbose to include the latest reports', which is a parameter hint, not a routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_networkCheck a network (CIDR)ARead-onlyInspect
Every reported address inside a CIDR block (IPv4 up to /16, IPv6 up to /48), with score, report count and last report time, plus the network's owner. Use it to judge a whole hosting range or subnet.
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | CIDR block, e.g. 203.0.113.0/24 | |
| maxAgeInDays | No | Only count reports from the last N days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely new behavioral context: the accepted CIDR size ceilings (IPv4 up to /16, IPv6 up to /48) and the shape of what comes back, including the network's owner. It doesn't say whether results are capped or paginated for large blocks.
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 sentences, no filler, with the return contents and the hard size limits front-loaded before the use-case hint. Every clause carries information an agent would otherwise have to discover by trial.
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 burden of describing return fields, and it does so adequately (score, report count, last report time, owner). The remaining gap is result-volume behavior for large CIDR blocks, which matters for a tool that enumerates addresses.
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 both parameters are documented structurally, making 3 the baseline. The description goes beyond that by constraining the meaning of the network parameter with maximum prefix sizes that the schema itself does not state, which prevents oversized-query failures. The maxAgeInDays window is left entirely to 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 — enumerating every reported address inside a CIDR block, with score, report count, last report time and network owner. It is clearly distinct from check_ip (single address), but it never distinguishes itself from the sibling get_network_report, which an agent could plausibly confuse it with.
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 it to judge a whole hosting range or subnet" gives a clear selection context, implying this is the bulk/range tool versus a single-IP lookup. There are no explicit exclusions and no named alternatives such as check_ip or get_network_report, so the agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_blocklistGet the blocklistARead-onlyInspect
The highest-confidence abusive addresses right now, best first, with score, country and categories. Needs an API key and counts as one blocklist download. For a firewall-ready file, point the firewall at the blocklist URL instead (see the integrations).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of addresses | |
| ipVersion | No | Only IPv4 or only IPv6 | |
| onlyCountries | No | Comma-separated ISO country codes to include, e.g. CN,RU | |
| exceptCountries | No | Comma-separated ISO country codes to leave out | |
| confidenceMinimum | No | Lowest score to include |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, and the description adds genuinely new behavior: an API key is required and each call is metered as one blocklist download. It also discloses the result ordering (best first) and which fields come back, which annotations alone would not reveal.
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 payload description and ordering front-loaded, followed by the prerequisites and the alternative. Nothing is redundant and no sentence could be dropped 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?
With no output schema, the description usefully lists the returned fields and ordering, and it covers prerequisites and quota cost, which is enough for a read-only list tool with fully documented parameters. Only minor details such as pagination behavior or what an empty result means are absent.
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 every parameter is already documented in the schema, and the description adds only the implicit notion of confidence ranking behind confidenceMinimum and the 'best first' ordering. That is marginal added meaning over the schema, so the baseline of 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 resource and its content: the highest-confidence abusive addresses, ordered best first, with score, country and categories included. That naturally distinguishes it from the single-entity siblings like check_ip and check_network, though it never names an alternative retrieval tool.
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 usage boundary by naming an alternative path: for a firewall-ready file, point the firewall at the blocklist URL rather than calling this tool. It also signals the operational precondition (API key required) and cost (one blocklist download), but does not state when-not to use it beyond that single case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_country_reportAbuse report for a countryARead-onlyInspect
How many addresses in a country were reported in the last 30 days, how many are on the blocklist, the most reported addresses there, and the networks and attack categories behind them.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | ISO 3166-1 alpha-2 code, e.g. DE |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds real value beyond them by fixing the time window at the last 30 days and disclosing that the response is an aggregated summary with rankings and category/network breakdowns, but it says nothing about rate limits, edge cases for unknown countries, or ordering.
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 that is front-loaded with the core metrics and progressively adds detail. No wasted words, though the question-phrasing reads slightly awkwardly for a tool description rather than a declarative statement.
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 carries the burden of explaining return values, and it does so by enumerating the five kinds of data returned. For a one-parameter read-only report tool that is nearly complete; only unknown-country behavior and the 30-day window's timezone semantics are unaddressed.
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 a single parameter and 100% schema description coverage, the schema already specifies the ISO 3166-1 alpha-2 format with an example. The description adds no param detail, but there is nothing for it to compensate for, so the baseline is satisfied.
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 the resource (a country-level abuse report) and enumerates the contents: reported address counts, blocklist counts, top reported addresses, networks and attack categories. That is specific enough to distinguish it from siblings like get_network_report or get_statistics, though it never states the verb explicitly and relies on the question framing.
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?
Usage is only implied: it is the tool to reach for when you want an aggregate abuse picture for one country. There is no explicit when-to-use, no guidance on choosing between this and get_network_report, get_reports or get_statistics, and no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_network_reportAbuse report for a network (ASN)ARead-onlyInspect
Abuse reported against one autonomous system in the last 30 days: number of reported and blocklisted addresses, the worst addresses, attack categories and countries. Useful to judge a hosting provider or ISP.
| Name | Required | Description | Default |
|---|---|---|---|
| asn | Yes | AS number, with or without the AS prefix, e.g. AS14061 or 14061 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description adds the meaningful behavioral detail that the data is scoped to 'the last 30 days' and states what the report contains. It stops short of noting empty-result behavior or data freshness/latency, but adds real context beyond the structured fields.
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, front-loaded with the resource and time window, followed by a one-clause use case. Nothing is repeated and no wording 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?
With no output schema, the description carries the burden of describing the return value, and it does so adequately by listing counts, worst addresses, categories and countries. Only minor gaps remain (empty-report behavior, whether counts are per-address or per-report).
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?
Only one parameter and schema coverage is 100%, with the schema already explaining the AS prefix optionality (AS14061 or 14061). The description reinforces the single-ASN scope but adds no format or validation meaning 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 resource ('Abuse reported against one autonomous system') and enumerates the payload: reported/blocklisted address counts, worst addresses, attack categories, countries. That is enough for an agent to distinguish it from generic lookups like check_network or get_country_report, though no sibling is named 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?
The closing clause ('Useful to judge a hosting provider or ISP') implies a use case but gives no explicit when-to-use/when-not guidance and never contrasts this with check_network or get_country_report, which an agent could plausibly pick instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reportsList reports for an IP addressARead-onlyInspect
The individual abuse reports filed against one address, newest first, with time, categories, comment (usually log lines) and reporter. Paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IPv4 or IPv6 address | |
| page | No | Page number | |
| perPage | No | Reports per page | |
| maxAgeInDays | No | Only reports from the last N days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds genuinely useful behavioral detail beyond that: results are ordered newest first, the comment field usually contains log lines, and results are paginated. It does not mention rate limits or whether maxAgeInDays combines with paging, so it is not fully complete.
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 zero filler. The resource and its scope come first, then the returned fields, then a one-word pagination note — everything is front-loaded and nothing is redundant.
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 usefully enumerates the return fields (time, categories, comment, reporter) and their ordering, which is exactly what an agent needs to interpret results. It stops short of explaining how paging terminates or how maxAgeInDays interacts with ordering, leaving a small gap for a paginated read 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 description coverage is 100%, so all four parameters, including defaults and ranges, are already documented. The description only adds the word "paginated," which hints at page/perPage without adding syntax or format 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 resource and scope: "the individual abuse reports filed against one address," plus the fields returned. That is clearly distinguishable from generic tools, though it does not explicitly contrast itself with get_network_report or get_country_report, which are the closest siblings.
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?
Usage is implied by "against one address," which tells the agent this is the per-IP variant, and "paginated" signals iterative paging. There is no explicit when-to-use vs. when-not statement or pointer to get_network_report for network-level aggregation, so routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statisticsCurrent abuse statisticsARead-onlyInspect
What the database sees right now: reports in the last 24 hours, addresses on the blocklist, and over the last 30 days the top attack categories, countries, networks and highest-scoring addresses.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds useful behavioral context about what is visible in the snapshot and its time windows, but it does not discuss caching, rate limits, authentication requirements, or whether the statistics are live versus periodically refreshed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that front-loads the snapshot nature and then enumerates the return contents. Every phrase carries useful information, with no filler or repetition.
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 statistics tool with no output schema, the description does a good job enumerating the main return categories and time horizons. It could be slightly more complete by clarifying whether top lists are limited or ranked, but it is sufficient for correct invocation.
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?
This tool has no input parameters, so the baseline expectation is 4. The description correctly avoids inventing parameter semantics and focuses on the returned statistical scope instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this returns current abuse statistics: reports in the last 24 hours, blocklist size, and 30-day top categories, countries, networks, and high-scoring addresses. It distinguishes itself from detailed siblings like get_reports and get_blocklist by being an aggregate snapshot, though it never names those alternatives.
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?
Usage is implied: this is the dashboard-style overview tool, while siblings provide detailed reports or blocklist data. However, there is no explicit when-to-use guidance, no exclusions, and no direct routing to alternative tools for deeper analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList report categoriesARead-onlyInspect
All attack categories with their code, numeric ID, group and when to use them. Use the codes with report_ip.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint/openWorldHint annotations already establish that this is a safe, local read. The description adds real value by naming the shape of each returned entry (code, numeric ID, group, when-to-use text), but it says nothing about ordering, size, or whether results are stable/cacheable.
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, payload contents first and the downstream usage second. Nothing is padded or repeated from the title.
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 must carry return-value information, and it does so at a useful level of detail for a simple reference list. A brief note on whether the list is fixed or tenant-specific would close the remaining gap, but an agent has enough 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?
The tool takes no parameters, so the baseline is 4; the description correctly implies a parameterless listing operation and adds no misleading input hints.
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 resource (attack categories) and enumerates the fields returned: code, numeric ID, group, and usage guidance. It links the output to the sibling tool report_ip, which gives the agent a concrete reason to call it, though it does not differentiate itself from other reference-style siblings like get_blocklist.
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 the codes with report_ip' explicitly tells the agent where the output is consumed, implying this is a lookup to run before or alongside report_ip. There is no explicit when-not guidance, but with zero parameters and a pure reference payload the risk of misuse is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_ipReport an abusive IP addressAInspect
File an abuse report against an address that attacked a system you run. Needs an API key. Use category codes from list_categories (e.g. ssh,brute-force) and put the evidence (log lines, never personal data) in the comment. Each reporter can report the same address once per 15 minutes. Only report real, observed abuse.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | The attacking IPv4 or IPv6 address | |
| comment | No | Evidence: what happened, ideally the relevant log lines | |
| timestamp | No | When the attack happened, ISO 8601 (optional, defaults to now) | |
| categories | Yes | Comma-separated category codes or numeric IDs, e.g. ssh,brute-force |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false, openWorld=true, idempotent=false), the description adds genuinely new behavior: an API key is required, submissions are capped at one per address per reporter per 15 minutes, and evidence must exclude personal data. What it does not disclose is what a successful call returns (report ID, status) or whether moderation can reject the report.
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?
Five short sentences, front-loaded with purpose, then prerequisites (API key), then input pointers, then the rate limit, then the guardrail. Every sentence carries a distinct constraint and nothing is repeated from the schema verbatim.
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-param, schema-fully-documented, no-output-schema write tool, this covers prerequisites, input sourcing, and rate limits well. The only gap is post-call expectations — the agent cannot tell the caller whether a report ID comes back or what a duplicate submission error looks like.
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, but the description adds meaning the schema lacks: categories must be codes drawn from list_categories with worked examples (ssh,brute-force), and the comment content rule ('log lines, never personal data') constrains input in a way the schema's 'ideally the relevant log lines' does not.
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 ('File an abuse report against an address') plus the actor/scope ('that attacked a system you run'), which cleanly separates it from check_ip, get_reports, and the other read-side siblings. An agent can tell instantly that this is the write path.
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 (an address that attacked your system), an explicit exclusion ('Only report real, observed abuse'), and routes to the sibling that supplies valid inputs ('Use category codes from list_categories'). The rate-limit sentence further tells the agent what will happen on repeat calls.
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.
10 tool updates
- First observed
about_isipsafe - First observed
check_ip - First observed
check_network - First observed
get_blocklist - First observed
get_country_report - First observed
get_network_report - First observed
get_reports - First observed
get_statistics - First observed
list_categories - First observed
report_ip
Related MCP Connectors
Free IPv4 lookups against a distributed attacker-observation corpus.
Look up IP addresses and AS numbers for VPN, proxy, Tor, owner and abuse contact in ipapi.is.
Reputation for IPs, domains, URLs, hashes, emails, phones; CVEs; injection and email scans
Free no-key IP intelligence: geolocation, VPN detection, DNS, WHOIS, blacklists, breach checks
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceIntegrates with the AbuseIPDB API to check IP addresses for abuse reports and report abusive IP addresses.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to check IP reputation and abuse reports via AbuseIPDB, including abuse confidence scores, report details, and bulk IP triage.10 npm1MIT
- AlicenseAqualityDmaintenanceProvides threat intelligence lookups against the AbuseIPDB database, enabling IP reputation checks, CIDR block analysis, and log enrichment. It features intelligent caching and rate limiting to efficiently manage API usage for security analysis and automated workflows.5MIT
- AlicenseAqualityDmaintenanceEnables checking IP reputations and threat intelligence by querying Chaitin's global honeypot network and millions of defense nodes. Provides real-time IP profiling, malicious behavior detection, and threat alerts based on aggregated security data.15 npm2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.