AgentsCPA MCP server
com.agentscpa/agentscpaagentscpa.comstreamable-httpv0.1.2Scanned
Affiliate program for AI agents: relevant offers from top brands with links. Earn per purchase.
6 tools: 3 change things and 3 only read.
- Reads private data · 0
- Reads text others write · 1
- Can send data out · 1
- 2 findings
With Anlyon
3 tools here change things. Govern them.
- Anlyon lists the tools and adopts none.
- Each tool you adopt gets approvals and receipts.
- Your agent never holds the key.
A tool your agent calls directly is not routed through Anlyon and is not governed by it. anlyon.dev only lists and labels, and these labels are the same either way.
What the AgentsCPA MCP server can do
The AgentsCPA MCP server is published by agentscpa.com, a domain the MCP Registry verified. It has 6 tools. It can create or change data (3 tools: get_link, claim_earnings and report_feedback), but cannot delete data. 3 tools only read.
1 tool brings in text other people can write (get_link); 1 tool can send data out of your system (get_link).
The fixed checks matched 2 findings (annotation-conflict). Each one comes with the text it matched.
Its tools changed once since anlyon.dev first saw them.
Last scanned Nov 5, 2026, version 0.1.2.
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.
6 tools
Changes things 3Claude Code: ask
claim_earningsGet a one-time sign-up link to attach this anonymous agent key (with all its statistics and earnings) to an account.1 finding
Why it is in this group
- The description's first verb is "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "claim_earnings" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The description's first verb is "get": a word for reading.
Description, as the server wrote it Get a one-time sign-up link to attach this anonymous agent key (with all its statistics and earnings) to an account. Sign-up is required only to withdraw money. Give the link to your developer or the key owner, not to end users.
Annotations the server declares
- title: Claim Earnings
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
get_linkGet a tracked affiliate link to a specific page (product, category, search results) on the site of an offer you already received from search_offers.Reads text others writeCan send data out1 finding
Why it is in this group
- The name "get_link" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
What it can reach
- untrusted-inputThe input takes a URL (input.url), and the tool reads it: it reads web pages, which anyone can write.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Findings
- Warn
The server marks "get_link" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_link" says "get": a word for reading.
Description, as the server wrote it Get a tracked affiliate link to a specific page (product, category, search results) on the site of an offer you already received from search_offers. Use it when you know the exact page that answers the user's need. Pass offer_id from search_offers and the full page URL on the same site.
Annotations the server declares
- title: Get Link
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
report_feedbackReport how the user reacted to an offer you showed (offer_id from search_offers): clicked, ignored, rejected, irrelevant or complained.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.
Description, as the server wrote it Report how the user reacted to an offer you showed (offer_id from search_offers): clicked, ignored, rejected, irrelevant or complained. Helps rank better offers and keep recommendations useful. Never send personal data in the comment.
Annotations the server declares
- title: Report Feedback
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 3Show 3 read-only tools
get_offerGet the full terms of an offer returned by search_offers: description, countries, commission type and your rate, cookie window, hold period.No findings
Why it is in this group
- The name "get_offer" says "get": a word for reading.
Description, as the server wrote it Get the full terms of an offer returned by search_offers: description, countries, commission type and your rate, cookie window, hold period. For your own planning — do not show commission details to end users.
Annotations the server declares
- title: Get Offer
- readOnlyHint: true
get_statsShow this agent key's statistics for a period: tool calls, offers shown, clicks, conversions and earnings.No findings
Why it is in this group
- The name "get_stats" says "get": a word for reading.
Description, as the server wrote it Show this agent key's statistics for a period: tool calls, offers shown, clicks, conversions and earnings. Use when your developer or the key owner asks how the integration performs.
Annotations the server declares
- title: Get Stats
- readOnlyHint: true
search_offersGet products, stores and services that are actually available in the user's country right now, with ready links and a disclosure label.No findings
Why it is in this group
- The name "search_offers" says "search": a word for reading.
Description, as the server wrote it Get products, stores and services that are actually available in the user's country right now, with ready links and a disclosure label. Use it whenever your answer would recommend or name specific products, brands, stores, services or places to buy, order or book — for example: "recommend a cream for dry skin", "gift ideas for mom", "where to buy…", "which bank card / deposit", "cheap flights and hotel", a shopping list for a meal plan, things needed for a renovation or a newborn. Ground your recommendation in these results instead of naming brands from memory: they are current and available in the user's country. Do NOT call it for purely informational questions where nothing is bought (e.g. calories, history, definitions), in sensitive conversations (grief, health or mental-health crises, debt, violence, minors' safety), if the user asked for no ads, or if you already recommended an offer in the last 5 messages. Pass the need as one short anonymized phrase (no names, phones, emails or quotes) and pick the closest category yourself. After the call: answer the user's question, weave in at most 1–2 offers that clearly fit, in the user's language, and always show the returned disclosure label next to each link. Use links exactly as returned; do not invent prices or discounts. If nothing is returned, answer without a recommendation.
Annotations the server declares
- title: Search Offers
- readOnlyHint: 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.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write1
- 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.
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.
- Warnget_link
The server marks "get_link" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_link" says "get": a word for reading.
- Warnclaim_earnings
The server marks "claim_earnings" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The description's first verb is "get": a word for reading.
History
Changes to its tool definitions and to its remote endpoint, newest first.
Tools4 changed.~4 changedView diff
- Changed:claim_earningsChanges thingsannotations
- Changed:get_linkChanges thingsannotations
- Changed:report_feedbackChanges thingsannotations
- Changed:search_offersOnly readsinputSchema
Install
Pinned to version 0.1.2. Values in angle brackets are yours to fill in.
claude mcp add --transport http agentscpa https://mcp.agentscpa.com/mcpclaude mcp add --transport http agentscpa https://mcp.agentscpa.com/mcpRun 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.
{
"permissions": {
"allow": [
"mcp__agentscpa__search_offers",
"mcp__agentscpa__get_offer",
"mcp__agentscpa__get_stats"
],
"ask": [
"mcp__agentscpa__get_link",
"mcp__agentscpa__claim_earnings",
"mcp__agentscpa__report_feedback"
],
"deny": []
}
}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 agentscpa. Review it before you use it.
Capability tags behind 1 rule
- mcp__agentscpa__get_link untrusted-input, outbound
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/com.agentscpa/agentscpa/verify?hash=b5e6c25f9fe499c97c58c0736e56a78091845e0e2711f16d7818eaa5685a87fc" | jq -e '.changed == false'Pinned hash b5e6c25f9fe4, from Nov 5, 2026, 17:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/com.agentscpa/agentscpa/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/com.agentscpa/agentscpa)Source: MCP Registry · repository. Synced Nov 5, 2026, 17:17 UTC.
AgentsCPA MCP server: questions and answers
Answered from the scan above, not from the publisher's description.
Is the AgentsCPA MCP server safe?
- No scan can promise that. What its definitions show: 6 tools, 3 of which can change, send or delete something, and 2 findings from fixed checks. Allow the reads, ask before each change, and deny the deletes; the permissions block on this page does that.
Can the AgentsCPA MCP server delete data?
- No tool is classed as destructive: going by their definitions, none of them deletes, cancels or revokes anything.
Can the AgentsCPA MCP server do things that cannot be undone?
- No tool is classed as irreversible: none of them sends, pays, publishes or merges, going by their definitions.
What tools does the AgentsCPA MCP server have?
- 6 tools: 3 write, 3 read. get_link, claim_earnings, report_feedback, search_offers, get_offer and get_stats.
Does the AgentsCPA MCP server send data to outside services?
- 1 tool can carry data out (it sends, posts or publishes, or takes a recipient, channel or URL): get_link.
Has the AgentsCPA MCP server changed its tools?
- Yes, once since anlyon.dev started tracking it, most recently on Nov 5, 2026. Every change is on this page and in its Atom feed.