Skip to content

Geocode AI

dev.geocodeai/geocodegeocodeai.devstreamable-httpv1.0.0Scanned

Administrative boundaries for every place on Earth: search, reverse lookup, polygons, areas.

43 tools: 11 can delete or cancel things, 1 do something that can't be undone, 10 change things and 21 only read.

Tools: 11 delete, 1 irreversible, 10 write, 21 read.
  • Reads private data · 8
  • Reads text others write · 29
  • Can send data out · 1
  • 1 finding

Anlyon alternative

22 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

43 tools

Deletes or cancels 11Claude Code: deny
  • comment_on_feedbackAdds context to an existing feature request or issue: your use case, another failing request id, a workaround.Reads text others writeNo findings

    Why it is in this group

    • The name "comment_on_feedback" says "comment": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Adds context to an existing feature request or issue: your use case, another failing request id, a workaround. Prefer it (with upvote_feedback) over filing a near-duplicate. You then get its status emails; its author gets a daily digest of comments. Free; needs a key; 50 comments per account a day. Feature requests are public (never the author's email); issues are private to you and the team. Do not include API keys, personal data or customer data. Needs an API key or a connected account.

    Annotations the server declares

    • title: Comment on a feature request or issue
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • delete_fileRemoves a file from the organization's library and its shares (admin access on the file).No findings

    Why it is in this group

    • The name "delete_file" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Removes a file from the organization's library and its shares (admin access on the file). The exported file itself stays in the public cache; export_boundary rebuilds the url any time. Free. Needs an API key or a connected account.

    Annotations the server declares

    • title: Remove from the library
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • remove_feedback_voteTakes back your upvote on a feature request or issue, and stops its emails unless you filed or commented on it.Reads text others writeNo findings

    Why it is in this group

    • The name "remove_feedback_vote" says "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Takes back your upvote on a feature request or issue, and stops its emails unless you filed or commented on it. Free; needs a key. Returns the item with its new vote count. Needs an API key or a connected account.

    Annotations the server declares

    • title: Remove an upvote
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • request_featureFiles a feature request on the public board and upvotes it for you.Reads text others writeNo findings

    Why it is in this group

    • The name "request_feature" says "request": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Files a feature request on the public board and upvotes it for you. Use it when the human wishes the API did something it cannot (a boundary type, export format, op or option). It first looks for similar requests: if any match it files nothing and returns them in `similar`, so you can upvote_feedback the right one; pass force: true to file anyway. Free; needs a key; 10 new items per account a day. The human gets a thank-you email and an email on every status change. Feature requests are public (never the author's email); issues are private to you and the team. Do not include API keys, personal data or customer data. Needs an API key or a connected account.

    Annotations the server declares

    • title: Request a feature
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • revoke_api_keyRevokes an API key by id.No findings

    Why it is in this group

    • The name "revoke_api_key" says "revoke": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Revokes an API key by id. Requests with it fail with 401 immediately. Members revoke the keys they created; admins and owners revoke any key in the organization. Needs an API key or a connected account.

    Annotations the server declares

    • title: Revoke API key
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • share_fileShares a library file with a team (by slug or id) or a person in the organization (by email or user id) at read, write or admin access; sharing again changes the access.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Shares a library file with a team (by slug or id) or a person in the organization (by email or user id) at read, write or admin access; sharing again changes the access. Needs admin access on the file (its creator, an org admin, or an admin share). Viewers are capped at read whatever the share says. Free. Returns the file's shares. Needs an API key or a connected account.

    Annotations the server declares

    • title: Share library file
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • submit_reviewPosts the human's public review of Geocode AI (1–5 stars, what they like and dislike, what they use it for), or replaces their existing one; each account has one review and earlier…Reads text others writeNo findings

    Why it is in this group

    • The name "submit_review" says "submit": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Posts the human's public review of Geocode AI (1–5 stars, what they like and dislike, what they use it for), or replaces their existing one; each account has one review and earlier versions are kept. Only call it with the human's own rating and words, never invented ones. Published at once unless it holds links or the account is under a day old (then pending). Free; needs a key; one edit an hour. The human gets a thank-you email. Needs an API key or a connected account.

    Annotations the server declares

    • title: Post or edit a review
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • unshare_fileRemoves one share of a library file by its grant id (from get_file).No findings

    Why it is in this group

    • The description's first verb is "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Removes one share of a library file by its grant id (from get_file). Needs admin access on the file. Org-visible files stay visible to every member; make it restricted with update_file to limit it to its shares. Free. Needs an API key or a connected account.

    Annotations the server declares

    • title: Stop sharing library file
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • update_email_preferencesTurns automated emails on or off: `subscribed: false` stops all of them (the same as the unsubscribe link), `subscribed: true` resubscribes, and `kinds` switches individual kinds.Can send data outNo findings

    Why it is in this group

    • The name "update_email_preferences" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • outboundThe name "update_email_preferences" says "update" and "email": it writes something other people read.
    Description, as the server wrote it
    Turns automated emails on or off: `subscribed: false` stops all of them (the same as the unsubscribe link), `subscribed: true` resubscribes, and `kinds` switches individual kinds. Kinds not named keep their setting. Free. Returns the preferences after the change. Needs an API key or a connected account.

    Annotations the server declares

    • title: Update email preferences
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • update_fileRenames a library file (write access) or sets its visibility (admin access on the file): org shares it with every member at their role, restricted keeps it to its creator, admins a…No findings

    Why it is in this group

    • The name "update_file" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Renames a library file (write access) or sets its visibility (admin access on the file): org shares it with every member at their role, restricted keeps it to its creator, admins and explicit shares. Free. Needs an API key or a connected account.

    Annotations the server declares

    • title: Rename or change visibility
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • update_profileSets the account's name, company, use case (what you are building) and language (the language for emails and the dashboard).No findings

    Why it is in this group

    • The name "update_profile" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Sets the account's name, company, use case (what you are building) and language (the language for emails and the dashboard). Send only the fields to change; an empty string clears a text field. Free. Returns the updated profile. Needs an API key or a connected account.

    Annotations the server declares

    • title: Update profile
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
Can't be undone 1Claude Code: ask
  • union_boundariesMerges boundaries into one polygon: the union of include minus the union of exclude (e.g.Reads text others write1 finding

    Why it is in this group

    • The description's first verb is "merge": a word for a change that another call does not undo.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Warn

      The server marks "union_boundaries" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "merge": a word for a change that another call does not undo.

      What this check looks for
    Description, as the server wrote it
    Merges boundaries into one polygon: the union of include minus the union of exclude (e.g. three counties minus one city). Use it for sales territories, delivery zones and service areas. Up to 50 boundaries; costs 1 unit per boundary. Returns a GeoJSON Feature with area_km2. To describe an area in words instead, use create_area. Needs an API key or a connected account.

    Annotations the server declares

    • title: Merge boundaries
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Changes things 10Claude Code: ask
  • contains_pointsTests up to 10,000 points ([lon, lat] pairs) against one boundary and returns a boolean per point plus the inside count.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Tests up to 10,000 points ([lon, lat] pairs) against one boundary and returns a boolean per point plus the inside count. Use it for geofencing, service-area checks and filtering customer lists. Costs 1 unit per 1,000 points. Needs an API key or a connected account.

    Annotations the server declares

    • title: Points in boundary
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • create_api_keyCreates an API key for the organization and returns the secret once.No findings

    Why it is in this group

    • The name "create_api_key" says "create": a word for a change.
    Description, as the server wrote it
    Creates an API key for the organization and returns the secret once. Store it in an environment variable (GEOCODE_API_KEY); it cannot be shown again. The key acts in this organization only, with its creator's role (at most admin), and keeps working if the creator leaves until an admin revokes it. Needs an API key or a connected account.

    Annotations the server declares

    • title: Create API key
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_areaTurns a plain-language description of an area ("Alameda and Contra Costa counties excluding San Jose, plus SFO") or wording from a contract or policy into one validated land-only p…Reads text others writeNo findings

    Why it is in this group

    • The name "create_area" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Turns a plain-language description of an area ("Alameda and Contra Costa counties excluding San Jose, plus SFO") or wording from a contract or policy into one validated land-only polygon. An AI agent plans includes/excludes from real administrative boundaries; you get GeoJSON plus each part's source, or a 422 explaining what could not be mapped. Takes 30 s to a few minutes. For a single named place use search_boundaries + get_boundary instead: it is instant and costs 1 unit. Needs an API key or a connected account.

    Annotations the server declares

    • title: Create area from a description
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • export_boundaryBuilds a boundary's polygon as a file (geojson, kml, wkt, svg or gml) at a detail level and returns a permanent public URL on our CDN; the REST route redirects straight to it.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Builds a boundary's polygon as a file (geojson, kml, wkt, svg or gml) at a detail level and returns a permanent public URL on our CDN; the REST route redirects straight to it. Use it for large polygons, GIS tools and bulk downloads. Costs 1 unit; each file is built once and then shared. Needs an API key or a connected account.

    Annotations the server declares

    • title: Export boundary file
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • report_issueReports a problem with Geocode AI: a failing or wrong API call, a wrong or missing boundary, a docs error.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Reports a problem with Geocode AI: a failing or wrong API call, a wrong or missing boundary, a docs error. Call it after a call fails in a way that looks like our bug (5xx, a wrong polygon, a boundary that should exist), with the failing call's request_id (X-Request-Id header or the error's request_id) and op; add query, boundary_id and the error in context. Issues are private to you and the team. It first returns similar issues you can see, filing nothing; upvote_feedback the same one or pass force: true. Free; needs a key; 10 new items per account a day. The human gets an email with the reference and on every status change. Needs an API key or a connected account.

    Annotations the server declares

    • title: Report an issue
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • reverse_boundariesEvery administrative boundary containing a point, country first down to the smallest district, plus postcode areas.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Every administrative boundary containing a point, country first down to the smallest district, plus postcode areas. Use it to tag an address, a store or a delivery with its country, state, county and city in one call. Costs 1 unit. Returns ids you can pass to get_boundary. Needs an API key or a connected account.

    Annotations the server declares

    • title: Boundaries at a point
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • save_fileExports a boundary (like export_boundary) and saves it in the organization's file library, so teammates find it on the dashboard and through list_files.Reads text others writeNo findings

    Why it is in this group

    • The name "save_file" says "save": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Exports a boundary (like export_boundary) and saves it in the organization's file library, so teammates find it on the dashboard and through list_files. visibility org (default) shares it with every member at their role; restricted keeps it to you, admins and whoever you share it with (share_file). Saving the same boundary, format and detail again returns the existing entry. Costs 1 unit. Returns the library entry with its permanent download url. Needs an API key or a connected account.

    Annotations the server declares

    • title: Save boundary file to the library
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • upvote_feedbackAdds your upvote to a feature request or issue (a "me too"); votes decide what gets built and fixed first, and you get an email when its status changes.Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "add": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Adds your upvote to a feature request or issue (a "me too"); votes decide what gets built and fixed first, and you get an email when its status changes. Idempotent: one vote per account. A vote on a duplicate goes to the original. Free; needs a key. Returns the item with its new vote count. Needs an API key or a connected account.

    Annotations the server declares

    • title: Upvote a feature request or issue
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 21Show 21 read-only tools
  • get_accountThe signed-in account and the organization the call acts in: email and profile, the organization (id, slug, name, personal or shared) and the caller's role in it (viewer, member, a…Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "get_account" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "email": it reads mail.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    The signed-in account and the organization the call acts in: email and profile, the organization (id, slug, name, personal or shared) and the caller's role in it (viewer, member, admin or owner), how the call is authenticated (api_key, oauth or session), the organization's plan in force (status, renewal date, set to cancel or not), this month's use of every limit (units used and remaining, described areas remaining, API keys, requests a minute, when units reset), and what the next plan adds with its checkout_url. Plan, usage and limits belong to the organization and are shared by its members and keys. Free. Call it before a large batch to check it fits, and after a human pays to see the new plan. Needs an API key or a connected account.

    Annotations the server declares

    • title: Get account
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_boundaryReturns one boundary as a GeoJSON Feature: its polygon at a chosen detail plus properties (name, kind, admin_level, parents, bbox, area_km2, population, wikidata).Reads text others writeNo findings

    Why it is in this group

    • The name "get_boundary" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Returns one boundary as a GeoJSON Feature: its polygon at a chosen detail plus properties (name, kind, admin_level, parents, bbox, area_km2, population, wikidata). Fetched from OpenStreetMap the first time anyone asks, then served from cache. Costs 1 unit; detail=low is also public without a key (for map previews). include=parents adds the full hierarchy, include=children the direct subdivisions. If the polygon is too big for one response, geometry is null and download_url points to the file.

    Annotations the server declares

    • title: Get boundary polygon
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_email_preferencesWhich automated emails the account receives: the global subscription and one switch per kind (getting-started notes, first boundary, usage milestones, quota warnings, check-ins, mo…Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "get_email_preferences" says "get": a word for reading.

    What it can reach

    • private-dataThe name "get_email_preferences" says "get" and "email": it reads mail.
    • private-dataThe description's first sentence says "email": it reads mail.
    • untrusted-inputThe name "get_email_preferences" says "get" and "email": it reads inbound email, which other people can write.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    Which automated emails the account receives: the global subscription and one switch per kind (getting-started notes, first boundary, usage milestones, quota warnings, check-ins, monthly digest). Free. Sign-in codes are always sent. Needs an API key or a connected account.

    Annotations the server declares

    • title: Get email preferences
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_feedbackOne feedback item with its status, upvotes, comments (official team responses marked) and timeline of status changes.Reads text others writeNo findings

    Why it is in this group

    • The name "get_feedback" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "comment": it reads comments, which other people can write.
    Description, as the server wrote it
    One feedback item with its status, upvotes, comments (official team responses marked) and timeline of status changes. Free and needs no key for public items; a private issue is visible to its reporter and the team.

    Annotations the server declares

    • title: Get a feature request or issue
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_fileOne library file: its boundary, format, detail, visibility, your access, the permanent download url and, when you can manage it, who it is shared with.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "get_file" says "get": a word for reading.

    What it can reach

    • private-dataThe name "get_file" says "get" and "file": it reads files.
    • private-dataThe description's first sentence says "file": it reads files.
    • untrusted-inputThe description's first sentence says "url": it reads web pages, which anyone can write.
    Description, as the server wrote it
    One library file: its boundary, format, detail, visibility, your access, the permanent download url and, when you can manage it, who it is shared with. Free. Needs an API key or a connected account.

    Annotations the server declares

    • title: Get library file
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_my_reviewYour review of the product, if you posted one, with its status (published, pending a check, or hidden with the reason) and the team's response.Reads text others writeNo findings

    Why it is in this group

    • The name "get_my_review" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe name "get_my_review" says "get" and "review": it reads comments, which other people can write.
    • untrusted-inputThe description's first sentence says "review": it reads comments, which other people can write.
    Description, as the server wrote it
    Your review of the product, if you posted one, with its status (published, pending a check, or hidden with the reason) and the team's response. Free; needs a key. Needs an API key or a connected account.

    Annotations the server declares

    • title: Get my review
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_pricingEvery plan with its monthly price, included units, limits (units, described areas, requests a minute, API keys), features and checkout_url, plus what each call costs in units and w…Reads text others writeNo findings

    Why it is in this group

    • The name "get_pricing" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "url": it reads web pages, which anyone can write.
    Description, as the server wrote it
    Every plan with its monthly price, included units, limits (units, described areas, requests a minute, API keys), features and checkout_url, plus what each call costs in units and what works without a key. Free and needs no key. Call it before a large batch, when the human asks what something costs, or before create_checkout_link; never quote prices from memory.

    Annotations the server declares

    • title: Get plans and prices
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_subscriptionThe organization's plan and subscription: plan, status, when the period renews or ends, whether it is set to cancel, the price, this month's use of every limit (units, described ar…Reads text others writeNo findings

    Why it is in this group

    • The name "get_subscription" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "url": it reads web pages, which anyone can write.
    Description, as the server wrote it
    The organization's plan and subscription: plan, status, when the period renews or ends, whether it is set to cancel, the price, this month's use of every limit (units, described areas, API keys, rate) and what the next plan adds, with its checkout_url. Free. The same as get_account without the profile. Call it before suggesting an upgrade, and after handing a human a checkout link to see when the payment went through (plan changes from free to the plan bought, usually within seconds). Needs an API key or a connected account.

    Annotations the server declares

    • title: Get subscription
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_usageThe organization's daily usage for the last N days (default 30), by op, with cache hit counts, across every member and key.No findings

    Why it is in this group

    • The name "get_usage" says "get": a word for reading.
    Description, as the server wrote it
    The organization's daily usage for the last N days (default 30), by op, with cache hit counts, across every member and key. Use it to explain a bill or spot a runaway client. Needs an API key or a connected account.

    Annotations the server declares

    • title: Get usage
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_api_keysThe organization's API keys (prefix, name, who created it, last use; never the secret).Reads private dataNo findings

    Why it is in this group

    • The name "list_api_keys" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "secret": it reads secrets.
    Description, as the server wrote it
    The organization's API keys (prefix, name, who created it, last use; never the secret). Members see the keys they created; admins and owners see every key, including those of people who left. Needs an API key or a connected account.

    Annotations the server declares

    • title: List API keys
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_audit_logThe organization's audit log, newest first: who (a person, an API key, an OAuth client or the system) changed membership, roles, teams, invites, API keys, billing or file sharing, …Reads private dataNo findings

    Why it is in this group

    • The name "list_audit_log" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "file": it reads files.
    Description, as the server wrote it
    The organization's audit log, newest first: who (a person, an API key, an OAuth client or the system) changed membership, roles, teams, invites, API keys, billing or file sharing, and when. Admins and owners only. Free. Needs an API key or a connected account.

    Annotations the server declares

    • title: List audit log
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_childrenThe direct subdivisions of a boundary: a country's states, a state's counties, a city's districts.Reads text others writeNo findings

    Why it is in this group

    • The name "list_children" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The direct subdivisions of a boundary: a country's states, a state's counties, a city's districts. Without admin_level it picks the next level that exists. Free and public. Use it to build drill-down pickers or to cover a region with its parts.

    Annotations the server declares

    • title: List subdivisions
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_feedbackThe feedback board: feature requests and published issues with their status and upvotes, most upvoted first (with a key, also your own private issues, and whether you voted).Reads text others writeNo findings

    Why it is in this group

    • The name "list_feedback" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "issue": it reads issues, which other people can write.
    Description, as the server wrote it
    The feedback board: feature requests and published issues with their status and upvotes, most upvoted first (with a key, also your own private issues, and whether you voted). Free and needs no key. Call it before request_feature or report_issue to find an existing item to upvote instead of filing a duplicate, or when the human asks what is planned or shipped.

    Annotations the server declares

    • title: List feature requests and issues
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_filesThe boundary files in the organization's library that you can see, newest first: org-visible ones plus restricted ones shared with you or a team you are in.Reads private dataNo findings

    Why it is in this group

    • The name "list_files" says "list": a word for reading.

    What it can reach

    • private-dataThe name "list_files" says "list" and "file": it reads files.
    • private-dataThe description's first sentence says "file": it reads files.
    Description, as the server wrote it
    The boundary files in the organization's library that you can see, newest first: org-visible ones plus restricted ones shared with you or a team you are in. Each has your access (read, write or admin). Free. Needs an API key or a connected account.

    Annotations the server declares

    • title: List library files
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_invitesInvitations to the organization: email, role, teams, status (pending, accepted, expired, revoked) and when they expire.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "list_invites" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "email": it reads mail.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    Invitations to the organization: email, role, teams, status (pending, accepted, expired, revoked) and when they expire. Admins and owners only. Free. Sending, resending and revoking invites is done on the dashboard. Needs an API key or a connected account.

    Annotations the server declares

    • title: List invites
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_membersThe people in the organization: email, name, role (viewer, member, admin, owner), when they joined and their teams.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "list_members" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "email": it reads mail.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    The people in the organization: email, name, role (viewer, member, admin, owner), when they joined and their teams. Free. Use it to find who to share a file with. Inviting, removing and changing roles is done by a person on the dashboard. Needs an API key or a connected account.

    Annotations the server declares

    • title: List members
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_my_feedbackWhat you filed (including private issues), what you follow because you voted or commented, and your review, each with its current status.Reads text others writeNo findings

    Why it is in this group

    • The name "list_my_feedback" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "issue": it reads issues, which other people can write.
    Description, as the server wrote it
    What you filed (including private issues), what you follow because you voted or commented, and your review, each with its current status. Free; needs a key. Use it to check on an issue you reported or a feature you asked for. Needs an API key or a connected account.

    Annotations the server declares

    • title: List my feedback and subscriptions
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_orgsThe organizations you belong to, with your role in each and which one this call acts in (current).No findings

    Why it is in this group

    • The name "list_orgs" says "list": a word for reading.
    Description, as the server wrote it
    The organizations you belong to, with your role in each and which one this call acts in (current). Personal is the one made for you at signup. An API key acts in its own organization only, so with a key this lists that one. Free. Needs an API key or a connected account.

    Annotations the server declares

    • title: List organizations
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_reviewsPublished reviews of Geocode AI with the average rating and the distribution, and the team's response under each.Reads text others writeNo findings

    Why it is in this group

    • The name "list_reviews" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe name "list_reviews" says "list" and "review": it reads comments, which other people can write.
    • untrusted-inputThe description's first sentence says "review": it reads comments, which other people can write.
    Description, as the server wrote it
    Published reviews of Geocode AI with the average rating and the distribution, and the team's response under each. Free and needs no key. Use it when the human asks what other users think.

    Annotations the server declares

    • title: Read reviews
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_teamsThe organization's teams: slug, name, description and members with their team role (maintainer or member).No findings

    Why it is in this group

    • The name "list_teams" says "list": a word for reading.
    Description, as the server wrote it
    The organization's teams: slug, name, description and members with their team role (maintainer or member). Free. Pass a team's slug to share_file to share a library file with everyone in it. Needs an API key or a connected account.

    Annotations the server declares

    • title: List teams
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_boundariesFinds administrative boundaries (countries, states, counties, cities, districts) and postcode areas by name, in any language.Reads text others writeNo findings

    Why it is in this group

    • The name "search_boundaries" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Finds administrative boundaries (countries, states, counties, cities, districts) and postcode areas by name, in any language. Filter by country, kind or admin_level; bias toward a point with near. Free and public. Returns candidates with id, kind, admin_level, country, parents, bbox, centroid and population, but no polygon: pass the id to get_boundary for that.

    Annotations the server declares

    • title: Search boundaries
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

232 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 1 outbound tool breaks every one.

Reads private data8
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write29
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out1
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
deny to break every path
{
  "permissions": {
    "deny": [
      "mcp__geocode__update_email_preferences"
    ]
  }
}

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "union_boundaries" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "merge": a word for a change that another call does not undo.

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http geocode https://geocodeai.dev/mcp
claude mcp add --transport http geocode https://geocodeai.dev/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__geocode__search_boundaries",
      "mcp__geocode__get_boundary",
      "mcp__geocode__list_children",
      "mcp__geocode__get_account",
      "mcp__geocode__get_usage",
      "mcp__geocode__list_api_keys",
      "mcp__geocode__get_email_preferences",
      "mcp__geocode__list_orgs",
      "mcp__geocode__list_members",
      "mcp__geocode__list_teams",
      "mcp__geocode__list_invites",
      "mcp__geocode__list_audit_log",
      "mcp__geocode__list_files",
      "mcp__geocode__get_file",
      "mcp__geocode__get_subscription",
      "mcp__geocode__list_feedback",
      "mcp__geocode__get_feedback",
      "mcp__geocode__list_my_feedback",
      "mcp__geocode__list_reviews",
      "mcp__geocode__get_my_review",
      "mcp__geocode__get_pricing"
    ],
    "ask": [
      "mcp__geocode__export_boundary",
      "mcp__geocode__reverse_boundaries",
      "mcp__geocode__contains_points",
      "mcp__geocode__union_boundaries",
      "mcp__geocode__create_area",
      "mcp__geocode__create_api_key",
      "mcp__geocode__save_file",
      "mcp__geocode__create_checkout_link",
      "mcp__geocode__get_billing_link",
      "mcp__geocode__report_issue",
      "mcp__geocode__upvote_feedback"
    ],
    "deny": [
      "mcp__geocode__update_profile",
      "mcp__geocode__revoke_api_key",
      "mcp__geocode__update_email_preferences",
      "mcp__geocode__update_file",
      "mcp__geocode__delete_file",
      "mcp__geocode__share_file",
      "mcp__geocode__unshare_file",
      "mcp__geocode__request_feature",
      "mcp__geocode__remove_feedback_vote",
      "mcp__geocode__comment_on_feedback",
      "mcp__geocode__submit_review"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as geocode. Review it before you use it.

Capability tags behind 33 rules
  • mcp__geocode__search_boundaries untrusted-input
  • mcp__geocode__get_boundary untrusted-input
  • mcp__geocode__export_boundary untrusted-input
  • mcp__geocode__reverse_boundaries untrusted-input
  • mcp__geocode__list_children untrusted-input
  • mcp__geocode__contains_points untrusted-input
  • mcp__geocode__union_boundaries untrusted-input
  • mcp__geocode__create_area untrusted-input
  • mcp__geocode__get_account private-data, untrusted-input
  • mcp__geocode__list_api_keys private-data
  • mcp__geocode__get_email_preferences private-data, untrusted-input
  • mcp__geocode__update_email_preferences outbound
  • mcp__geocode__list_members private-data, untrusted-input
  • mcp__geocode__list_invites private-data, untrusted-input
  • mcp__geocode__list_audit_log private-data
  • mcp__geocode__save_file untrusted-input
  • mcp__geocode__list_files private-data
  • mcp__geocode__get_file private-data, untrusted-input
  • mcp__geocode__get_subscription untrusted-input
  • mcp__geocode__create_checkout_link untrusted-input
  • mcp__geocode__get_billing_link untrusted-input
  • mcp__geocode__list_feedback untrusted-input
  • mcp__geocode__get_feedback untrusted-input
  • mcp__geocode__list_my_feedback untrusted-input
  • mcp__geocode__request_feature untrusted-input
  • mcp__geocode__report_issue untrusted-input
  • mcp__geocode__upvote_feedback untrusted-input
  • mcp__geocode__remove_feedback_vote untrusted-input
  • mcp__geocode__comment_on_feedback untrusted-input
  • mcp__geocode__list_reviews untrusted-input
  • mcp__geocode__get_my_review untrusted-input
  • mcp__geocode__submit_review untrusted-input
  • mcp__geocode__get_pricing untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/dev.geocodeai/geocode/verify?hash=d6662b698fa0810ff917296117159e5f78510a93e92ca75129770f6f3f47874b" | jq -e '.changed == false'

Pinned hash d6662b698fa0, from Nov 3, 2026, 13:18 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/dev.geocodeai/geocode/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for dev.geocodeai/geocode
[![anlyon.dev](https://anlyon.dev/badge/dev.geocodeai/geocode.svg)](https://anlyon.dev/servers/dev.geocodeai/geocode)

Source: MCP Registry. Synced Nov 3, 2026, 13:17 UTC.