NewsMAN MCP by usefulapi
io.usefulapi/newsmanusefulapi.iostreamable-httpv1.0.0Scanned
Read NewsMAN lists, subscribers, segments, newsletter and automation stats; manage subscribers.
26 tools: 4 can delete or cancel things, 3 change things and 19 only read.
- Reads private data · 5
- Reads text others write · 26
- Can send data out · 2
- 1 finding
Anlyon alternative
7 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.
26 tools
Deletes or cancels 4Claude Code: deny
newsman_remove_subscriber_from_segmentWRITE: remove a subscriber from a segment (the subscriber stays on the list).Reads text others writeNo findings
Why it is in this group
- The name "newsman_remove_subscriber_from_segment" 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 WRITE: remove a subscriber from a segment (the subscriber stays on the list). POST /v2/subscriber/removeFromSegment.
Annotations the server declares
- title: Remove a subscriber from a segment
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
newsman_subscribe_emailWRITE: subscribe an email address to a list (or update it if it exists), with optional name and custom properties.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "newsman_subscribe_email" says "subscribe": 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.
- outboundThe name "newsman_subscribe_email" says "subscribe" and "email": it writes something other people read.
Description, as the server wrote it WRITE: subscribe an email address to a list (or update it if it exists), with optional name and custom properties. A property key with the tag_ prefix sets a tag. Only use for people who gave consent. The subscriber is active at once, with no confirmation email. Returns the subscriber_id. POST /v2/subscriber/saveSubscribe.
Annotations the server declares
- title: Subscribe an email
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
newsman_unsubscribe_emailWRITE: unsubscribe an email address from a list, so it no longer receives campaigns from that list.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "newsman_unsubscribe_email" says "unsubscribe": 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.
- outboundThe name "newsman_unsubscribe_email" says "unsubscribe" and "email": it writes something other people read.
Description, as the server wrote it WRITE: unsubscribe an email address from a list, so it no longer receives campaigns from that list. Returns the subscriber_id. POST /v2/subscriber/saveUnsubscribe.
Annotations the server declares
- title: Unsubscribe an email
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
newsman_update_subscriberWRITE: change the email, first name or last name of a subscriber.Reads text others writeNo findings
Why it is in this group
- The name "newsman_update_subscriber" says "update": 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 WRITE: change the email, first name or last name of a subscriber. Give only the fields to change; the others are left as they are. POST /v2/subscriber/update.
Annotations the server declares
- title: Update a subscriber
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
Changes things 3Claude Code: ask
newsman_add_subscriber_tagsWRITE: add tags to a subscriber (existing tags stay).Reads text others writeNo findings
Why it is in this group
- The name "newsman_add_subscriber_tags" says "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 WRITE: add tags to a subscriber (existing tags stay). POST /v2/subscriber/addTags.
Annotations the server declares
- title: Add tags to a subscriber
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
newsman_add_subscriber_to_segmentWRITE: add a subscriber to a (static) segment.Reads text others writeNo findings
Why it is in this group
- The name "newsman_add_subscriber_to_segment" says "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 WRITE: add a subscriber to a (static) segment. POST /v2/subscriber/addToSegment.
Annotations the server declares
- title: Add a subscriber to a segment
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
newsman_get_newsletter_clicked_linksThe links clicked in one newsletter with the number of clicks and the last click time.Reads text others write1 finding
Why it is in this group
- The name "newsman_get_newsletter_clicked_links" says "get": a word for reading.
- The description's first verb is "link": a word for a change.
- 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 "newsman_get_newsletter_clicked_links" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "newsman_get_newsletter_clicked_links" says "get": a word for reading.
Description, as the server wrote it The links clicked in one newsletter with the number of clicks and the last click time. GET /v2/newsletter/linksClicked.
Annotations the server declares
- title: Get newsletter clicked links
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
Only reads 19Show 19 read-only tools
newsman_count_list_subscribersThe number of active (subscribed) subscribers of a list.Reads text others writeNo findings
Why it is in this group
- The name "newsman_count_list_subscribers" says "count": 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 number of active (subscribed) subscribers of a list. GET /v2/list/count.
Annotations the server declares
- title: Count list subscribers
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_count_segment_subscribersThe number of active subscribers in a segment.Reads text others writeNo findings
Why it is in this group
- The name "newsman_count_segment_subscribers" says "count": 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 number of active subscribers in a segment. GET /v2/segment/count.
Annotations the server declares
- title: Count segment subscribers
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_get_automationOne automation workflow: name, type, status, version, recurrence, stats and preview links.Reads text others writeNo findings
Why it is in this group
- The name "newsman_get_automation" 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 One automation workflow: name, type, status, version, recurrence, stats and preview links. GET /v2/automation/getWorkflow.
Annotations the server declares
- title: Get automation
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_get_automation_statsDaily stats of the automations of a list: sends, opens, clicks, purchases, bounces, unsubscribes.Reads text others writeNo findings
Why it is in this group
- The name "newsman_get_automation_stats" 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 Daily stats of the automations of a list: sends, opens, clicks, purchases, bounces, unsubscribes. Optionally for given workflows and a period (last N days, or start_date/stop_date; at most 90 days). GET /v2/automation/stats.
Annotations the server declares
- title: Get automation stats
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_get_import_statusStatus of a background subscriber import by import_id: new, running, finished or error, with times and the last error.Reads text others writeNo findings
Why it is in this group
- The name "newsman_get_import_status" 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 Status of a background subscriber import by import_id: new, running, finished or error, with times and the last error. GET /v2/import/status.
Annotations the server declares
- title: Get import status
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_get_listProperties of one list: sender name and email, owner contact details, site, link parameters, send rate.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "newsman_get_list" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "email": it reads mail.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
Description, as the server wrote it Properties of one list: sender name and email, owner contact details, site, link parameters, send rate. The list secret is never returned. GET /v2/list/getProps.
Annotations the server declares
- title: Get list properties
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_get_list_growthDaily evolution of a list: total and eligible subscribers, unsubscribes, spam reports and hard bounces per day.Reads text others writeNo findings
Why it is in this group
- The name "newsman_get_list_growth" 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 Daily evolution of a list: total and eligible subscribers, unsubscribes, spam reports and hard bounces per day. Give `days` (last N days) OR start_date/stop_date; the period is at most 90 days. GET /v2/list/subscribersEvolution.
Annotations the server declares
- title: Get list growth
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_get_newsletterProperties of one newsletter: subject, sender, status, dates, segments, links to the online view.Reads text others writeNo findings
Why it is in this group
- The name "newsman_get_newsletter" 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 Properties of one newsletter: subject, sender, status, dates, segments, links to the online view. Long HTML is clipped. GET /v2/newsletter/getProps.
Annotations the server declares
- title: Get newsletter
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_get_newsletter_statsDelivery and engagement stats of one newsletter: sent, views, clicks, unsubscribes, bounces, spam reports and rates.Reads text others writeNo findings
Why it is in this group
- The name "newsman_get_newsletter_stats" 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 Delivery and engagement stats of one newsletter: sent, views, clicks, unsubscribes, bounces, spam reports and rates. GET /v2/newsletter/stats.
Annotations the server declares
- title: Get newsletter stats
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_get_subscriberOne subscriber of a list by email address: status and dates, name, IP, custom properties and segments.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "newsman_get_subscriber" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "email": it reads mail.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
Description, as the server wrote it One subscriber of a list by email address: status and dates, name, IP, custom properties and segments. GET /v2/subscriber/getByEmail.
Annotations the server declares
- title: Get subscriber by email
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_get_subscriber_by_idOne subscriber by subscriber_id: status and dates, name, IP, custom properties and segments.Reads text others writeNo findings
Why it is in this group
- The name "newsman_get_subscriber_by_id" 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 One subscriber by subscriber_id: status and dates, name, IP, custom properties and segments. GET /v2/subscriber/get.
Annotations the server declares
- title: Get subscriber by id
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_get_subscriber_historyThe last 100 actions of a subscriber: subscribe, unsubscribe, send, view, click, bounce, spam, each with a date and metadata (newsletter, link).Reads text others writeNo findings
Why it is in this group
- The name "newsman_get_subscriber_history" 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 The last 100 actions of a subscriber: subscribe, unsubscribe, send, view, click, bounce, spam, each with a date and metadata (newsletter, link). GET /v2/subscriber/history.
Annotations the server declares
- title: Get subscriber history
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_list_automationsAutomation workflows of a list with workflow_id, name, type, status (0 inactive, 1 active), version and stats.Reads text others writeNo findings
Why it is in this group
- The name "newsman_list_automations" 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 Automation workflows of a list with workflow_id, name, type, status (0 inactive, 1 active), version and stats. Filter by name, status and last-updated range. GET /v2/automation/all.
Annotations the server declares
- title: List automations
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_list_listsAll email lists (and SMS lists) this key can access, each with list_id, list_name and list_type.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "newsman_list_lists" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "email": it reads mail.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
Description, as the server wrote it All email lists (and SMS lists) this key can access, each with list_id, list_name and list_type. Start here: most other tools need a list_id. GET /v2/list/all.
Annotations the server declares
- title: List subscriber lists
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_list_newslettersNewsletters (campaigns) of a list with newsletter_id, subject, status, dates, segments and headline stats.Reads text others writeNo findings
Why it is in this group
- The name "newsman_list_newsletters" 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 Newsletters (campaigns) of a list with newsletter_id, subject, status, dates, segments and headline stats. Filter by status (-1 cancelled, 0 new, 1 confirmed, 2 sending, 3 paused, 4 resumed, 5 sent; or a comma list such as 1,5; default all), by creation date range, or the last N days. Paged. GET /v2/newsletter/all.
Annotations the server declares
- title: List newsletters
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_list_segment_subscribersThe subscribers of a segment (subscriber_id and email).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "newsman_list_segment_subscribers" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "email": it reads mail.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
Description, as the server wrote it The subscribers of a segment (subscriber_id and email). Paged (page from 0, up to 1000 per page). GET /v2/segment/getSubscribers.
Annotations the server declares
- title: List segment subscribers
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_list_segmentsThe segments of a list with segment_id, segment_name, subscriber count and status (0 idle, 1 import running, 2 counting, 3 searching).Reads text others writeNo findings
Why it is in this group
- The name "newsman_list_segments" 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 segments of a list with segment_id, segment_name, subscriber count and status (0 idle, 1 import running, 2 counting, 3 searching). NewsMAN allows 20 calls a minute for this method. GET /v2/segment/all.
Annotations the server declares
- title: List segments
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_list_subscribersSubscribers of a list with a given status (subscribed, unsubscribed, bounced, spam, inactivated), optionally only those who joined since a UTC date.Reads text others writeNo findings
Why it is in this group
- The name "newsman_list_subscribers" 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 Subscribers of a list with a given status (subscribed, unsubscribed, bounced, spam, inactivated), optionally only those who joined since a UTC date. Each item has subscriber_id, email and the date of that status. Paged (page from 0, up to 1000 per page). GET /v2/list/getSubscribers.
Annotations the server declares
- title: List subscribers by status
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
newsman_search_subscribersSearch the subscribers of a list by keywords (email or name) and status, optionally only those who joined since a UTC date.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "newsman_search_subscribers" says "search": a word for reading.
What it can reach
- private-dataThe description's first sentence says "search" and "email": it reads mail.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "search" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it Search the subscribers of a list by keywords (email or name) and status, optionally only those who joined since a UTC date. Paged (page from 0, up to 1000 per page). GET /v2/subscriber/search.
Annotations the server declares
- title: Search subscribers
- readOnlyHint: true
- destructiveHint: false
- 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.
260 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 2 outbound tools breaks every one.
- Reads private data5
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write26
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- newsman_add_subscriber_tags
- newsman_add_subscriber_to_segment
- newsman_count_list_subscribers
- newsman_count_segment_subscribers
- newsman_get_automation
- newsman_get_automation_stats
- newsman_get_import_status
- newsman_get_list
- newsman_get_list_growth
- newsman_get_newsletter
- newsman_get_newsletter_clicked_links
- newsman_get_newsletter_stats
- and 14 more
- Can send data out2
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__newsman__newsman_subscribe_email",
"mcp__newsman__newsman_unsubscribe_email"
]
}
}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.
The server marks "newsman_get_newsletter_clicked_links" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "newsman_get_newsletter_clicked_links" says "get": a word for reading.
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 newsman https://newsman.usefulapi.io/mcpclaude mcp add --transport http newsman https://newsman.usefulapi.io/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__newsman__newsman_list_lists",
"mcp__newsman__newsman_get_list",
"mcp__newsman__newsman_count_list_subscribers",
"mcp__newsman__newsman_list_subscribers",
"mcp__newsman__newsman_get_list_growth",
"mcp__newsman__newsman_search_subscribers",
"mcp__newsman__newsman_get_subscriber",
"mcp__newsman__newsman_get_subscriber_by_id",
"mcp__newsman__newsman_get_subscriber_history",
"mcp__newsman__newsman_list_segments",
"mcp__newsman__newsman_count_segment_subscribers",
"mcp__newsman__newsman_list_segment_subscribers",
"mcp__newsman__newsman_list_newsletters",
"mcp__newsman__newsman_get_newsletter",
"mcp__newsman__newsman_get_newsletter_stats",
"mcp__newsman__newsman_list_automations",
"mcp__newsman__newsman_get_automation",
"mcp__newsman__newsman_get_automation_stats",
"mcp__newsman__newsman_get_import_status"
],
"ask": [
"mcp__newsman__newsman_get_newsletter_clicked_links",
"mcp__newsman__newsman_add_subscriber_tags",
"mcp__newsman__newsman_add_subscriber_to_segment"
],
"deny": [
"mcp__newsman__newsman_subscribe_email",
"mcp__newsman__newsman_unsubscribe_email",
"mcp__newsman__newsman_update_subscriber",
"mcp__newsman__newsman_remove_subscriber_from_segment"
]
}
}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 newsman. Review it before you use it.
Capability tags behind 26 rules
- mcp__newsman__newsman_list_lists private-data, untrusted-input
- mcp__newsman__newsman_get_list private-data, untrusted-input
- mcp__newsman__newsman_count_list_subscribers untrusted-input
- mcp__newsman__newsman_list_subscribers untrusted-input
- mcp__newsman__newsman_get_list_growth untrusted-input
- mcp__newsman__newsman_search_subscribers private-data, untrusted-input
- mcp__newsman__newsman_get_subscriber private-data, untrusted-input
- mcp__newsman__newsman_get_subscriber_by_id untrusted-input
- mcp__newsman__newsman_get_subscriber_history untrusted-input
- mcp__newsman__newsman_list_segments untrusted-input
- mcp__newsman__newsman_count_segment_subscribers untrusted-input
- mcp__newsman__newsman_list_segment_subscribers private-data, untrusted-input
- mcp__newsman__newsman_list_newsletters untrusted-input
- mcp__newsman__newsman_get_newsletter untrusted-input
- mcp__newsman__newsman_get_newsletter_stats untrusted-input
- mcp__newsman__newsman_get_newsletter_clicked_links untrusted-input
- mcp__newsman__newsman_list_automations untrusted-input
- mcp__newsman__newsman_get_automation untrusted-input
- mcp__newsman__newsman_get_automation_stats untrusted-input
- mcp__newsman__newsman_get_import_status untrusted-input
- mcp__newsman__newsman_subscribe_email untrusted-input, outbound
- mcp__newsman__newsman_unsubscribe_email untrusted-input, outbound
- mcp__newsman__newsman_update_subscriber untrusted-input
- mcp__newsman__newsman_add_subscriber_tags untrusted-input
- mcp__newsman__newsman_add_subscriber_to_segment untrusted-input
- mcp__newsman__newsman_remove_subscriber_from_segment 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/io.usefulapi/newsman/verify?hash=3923f7aadee503fff752c543af7bab2aed15940715c3647d001f9867c32b38fa" | jq -e '.changed == false'Pinned hash 3923f7aadee5, from Oct 26, 2026, 07:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/io.usefulapi/newsman/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.usefulapi/newsman)Source: MCP Registry · repository. Synced Oct 26, 2026, 07:18 UTC.