Search / io.github.chrisschouk/newsjack
NewsJack
R0· no sign-inMusic-industry news scored for your brand, with a drafted post in your voice.
v0.2.1 · active · repository · website · descriptor JSON · versions
Search / io.github.chrisschouk/newsjack
R0· no sign-inMusic-industry news scored for your brand, with a drafted post in your voice.
v0.2.1 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"newsjack": {
"type": "http",
"url": "https://newsjack.cc/api/mcp"
}
}
}claude mcp add --transport http newsjack https://newsjack.cc/api/mcp[mcp_servers.newsjack]
url = "https://newsjack.cc/api/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"newsjack": {
"type": "remote",
"url": "https://newsjack.cc/api/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"newsjack": {
"type": "http",
"url": "https://newsjack.cc/api/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=newsjack&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbmV3c2phY2suY2MvYXBpL21jcCJ9"
}{
"servers": {
"newsjack": {
"type": "http",
"url": "https://newsjack.cc/api/mcp"
}
}
}{
"mcpServers": {
"newsjack": {
"httpUrl": "https://newsjack.cc/api/mcp"
}
}
}extensions:
"newsjack":
enabled: true
name: "newsjack"
type: streamable_http
uri: "https://newsjack.cc/api/mcp"
timeout: 300
protocol.modernprotocol.statelessprotocol.transportprotocol.list_ttlauth.prm, auth.as_metadata, auth.cimdauth.secret_in_urltools.descriptionstools.description_lengthtools.schemastools.annotationstools.directory_hintstools.token_costtools.api_dumptools.hidden_textstability.changes, stability.rug_pull, stability.new_linksdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableexport_to_tapchangeddescription, input schema, annotationsmeaning changedWrite a Jack into a Total Audio Promo campaign and return TAP’s acknowledgement.
Send one Jack to a Total Audio Promo (TAP) campaign, creating a new draft campaign or writing into an existing one, and return TAP’s receipt. TAP is a separate product, so only call this when the person has asked for the Jack in TAP. Provide either content_id (a saved Post; its text, platform and title are used) or content (raw text). Without campaign_id it creates a draft TAP campaign named after title and stores the Jack as its goal. With campaign_id it overwrites that campaign’s existing goal field with the Jack, which cannot be undone from NewsJack. The write goes through the TAP API key configured on the NewsJack server (TAP_API_KEY), not a per-user TAP login, and fails if that key is missing or TAP refuses. Returns structuredContent { receipt: { campaignId, campaignUrl, created, acknowledgedAt } }. Not idempotent: repeating it without campaign_id creates another campaign. Needs the generate:posts scope; no NewsJack allowance is used.
cancel_scheduledchangeddescription, input schemameaning changedRevert a scheduled post back to draft status and remove it from publishing queue.
Cancel a scheduled Post: move it from scheduled or ready back to draft and clear its scheduled time, so it leaves the publishing queue. The Post and its text are kept in the library; schedule it again with schedule_post. Idempotent: a Post that is already a draft is reported unchanged. A Post that is publishing, posted or failed cannot be cancelled and returns an error. Find the id with list_scheduled.
list_scheduledchangeddescription, input schemameaning changedList posts queued for publication ordered by scheduled time.
List the signed-in account’s Posts from the library, filtered by lifecycle status and ordered by scheduled_for (soonest first, unscheduled last). By default it returns the scheduled queue. Pass status "all" to list every Post (drafts, waiting, posted and failed), which makes it the general Post listing tool. Statuses: draft (saved, no time set), scheduled (time set), ready (the time has passed and the Post is waiting for a person to publish it in the dashboard; nothing posts automatically), publishing, posted and failed. Returns a numbered summary with the first 8 characters of each id and the first 80 characters of text, plus structuredContent { count, posts } with the full Post rows (id, platform, content, status, scheduled_for, title, story_id, published_url). Use the full id with schedule_post, cancel_scheduled or export_to_tap. Read-only; needs the manage:schedule scope.
enable_global_sourcechangeddescriptionmeaning changedRe-enable a previously muted global news source in your feed.
Unmute a built-in publication previously muted with disable_global_source, so its Stories return to this account’s feed. Pass the same exact name; list_sources shows the muted ones. Custom RSS feeds are resumed with toggle_source instead. Idempotent: unmuting a publication that is not muted changes nothing.
disable_global_sourcechangeddescriptionmeaning changedMute a default global news source so its stories do not appear in your feed.
Mute one of NewsJack’s built-in publications so its Stories stop appearing in this account’s feed. Identify it by its exact publication name. For a custom RSS feed the account added itself, use toggle_source with its source_id instead. Reversible with enable_global_source and idempotent.
toggle_sourcechangeddescription, input schemameaning changedActivate or temporarily pause polling for a custom news source feed.
Pause or resume one of the account’s own custom RSS sources, identified by source_id from list_sources. It only works on feeds added with add_source. To mute or unmute one of NewsJack’s built-in publications, use disable_global_source and enable_global_source, which take the publication name instead. Reversible and idempotent: setting the same value twice changes nothing. Pausing keeps the source configured; remove_source deletes it.
generate_post_dry_runchangeddescriptionmeaning changedCreate a Jack preview without saving a Post. The preview performs the normal paid model work and consumes one generation allowance.
Create a Jack preview without saving a Post. The preview performs the normal paid model work and consumes one generation allowance, exactly like generate_post. Nothing is written to the library, so there is no Post id: to schedule or export the text afterwards, pass it as content to schedule_post or export_to_tap. Prefer generate_post when the Jack will probably be kept.
generate_postchangeddescriptionmeaning changedCreate a Jack from an owned Story using the saved voice and output controls, then save it as a draft Post in the library.
Create a Jack from an owned Story using the saved voice and output controls, then save it as a draft Post in the library. Returns the Jack text and the new Post id, which schedule_post and export_to_tap accept as content_id. Uses one generation from the daily allowance. Use generate_post_dry_run instead only when you want the text without a library entry; it costs the same allowance.
list_storieschangeddescription, input schemameaning changedSearch the authenticated account’s music-industry Stories by relevance, recency, and industry.
List the signed-in account’s scored news Stories, filtered by minimum relevance and industry and sorted by relevance or recency. Returns a readable summary per Story (ID, title, source, URL, relevance as a percentage, summary) and structuredContent { count, stories } where each Story has id, title, summary, source_name, url, relevance_score (0 to 1), detected_at, urgency, status and metadata. Use it to find what is worth writing about today, then pass a Story id to get_story for the full record or to generate_post to write a Jack from it. Only Stories NewsJack has already scanned into this account are returned; it does not fetch feeds or search the web. Read-only, no allowance used. Needs the read:stories scope; anonymous callers get an authentication error. An empty result means nothing matched, so lower min_relevance or drop category.
Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-5d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://newsjack.cc/api/mcp streamable-http | none | yes | 100% | 391 ms | 2024-11-05 | 2026-11-14 |
add_source | Add a new RSS or Atom feed URL to automated news monitoring. Feeds are polled every 5 minutes. |
cancel_scheduled | Cancel a scheduled Post: move it from scheduled or ready back to draft and clear its scheduled time, so it leaves the publishing queue. The Post and its text are kept in the library; schedule it again with schedule_post. Idempotent: a Post that is already a draft is reported unchanged. A Post that is publishing, posted or failed cannot be cancelled and returns an error. Find the id with list_scheduled. |
disable_global_source | Mute one of NewsJack’s built-in publications so its Stories stop appearing in this account’s feed. Identify it by its exact publication name. For a custom RSS feed the account added itself, use toggle_source with its source_id instead. Reversible with enable_global_source and idempotent. |
enable_global_source | Unmute a built-in publication previously muted with disable_global_source, so its Stories return to this account’s feed. Pass the same exact name; list_sources shows the muted ones. Custom RSS feeds are resumed with toggle_source instead. Idempotent: unmuting a publication that is not muted changes nothing. |
export_to_tapdestructive | Send one Jack to a Total Audio Promo (TAP) campaign, creating a new draft campaign or writing into an existing one, and return TAP’s receipt. TAP is a separate product, so only call this when the person has asked for the Jack in TAP. Provide either content_id (a saved Post; its text, platform and title are used) or content (raw text). Without campaign_id it creates a draft TAP campaign named after title and stores the Jack as its goal. With campaign_id it overwrites that campaign’s existing goal field with the Jack, which cannot be undone from NewsJack. The write goes through the TAP API key configured on the NewsJack server (TAP_API_KEY), not a per-user TAP login, and fails if that key is missing or TAP refuses. Returns structuredContent { receipt: { campaignId, campaignUrl, created, acknowledgedAt } }. Not idempotent: repeating it without campaign_id creates another campaign. Needs the generate:posts scope; no NewsJack allowance is used. |
generate_post | Create a Jack from an owned Story using the saved voice and output controls, then save it as a draft Post in the library. Returns the Jack text and the new Post id, which schedule_post and export_to_tap accept as content_id. Uses one generation from the daily allowance. Use generate_post_dry_run instead only when you want the text without a library entry; it costs the same allowance. |
generate_post_dry_run | Create a Jack preview without saving a Post. The preview performs the normal paid model work and consumes one generation allowance, exactly like generate_post. Nothing is written to the library, so there is no Post id: to schedule or export the text afterwards, pass it as content to schedule_post or export_to_tap. Prefer generate_post when the Jack will probably be kept. |
get_generation_configread-only | Retrieve the sampling, length, and additional writing rules applied when NewsJack creates a Jack. |
get_service_healthread-only | Report the most recent observed health of the NewsJack model chain, including an unknown state when no recent probe exists. |
get_storyread-only | Retrieve complete details, full summary, publication metadata, and source URL for a specific story by ID. Use list_stories first to obtain valid story IDs. |
get_usage_metricsread-only | Retrieve today’s observed Jack and roast usage with the authenticated account’s tier limits. |
get_voice_profileread-only | Retrieve the authenticated user brand voice profile including tone guidelines, sample posts, forbidden words, and style formatting toggles. Returns null if default house voice is active. |
list_scheduledread-only | List the signed-in account’s Posts from the library, filtered by lifecycle status and ordered by scheduled_for (soonest first, unscheduled last). By default it returns the scheduled queue. Pass status "all" to list every Post (drafts, waiting, posted and failed), which makes it the general Post listing tool. Statuses: draft (saved, no time set), scheduled (time set), ready (the time has passed and the Post is waiting for a person to publish it in the dashboard; nothing posts automatically), publishing, posted and failed. Returns a numbered summary with the first 8 characters of each id and the first 80 characters of text, plus structuredContent { count, posts } with the full Post rows (id, platform, content, status, scheduled_for, title, story_id, published_url). Use the full id with schedule_post, cancel_scheduled or export_to_tap. Read-only; needs the manage:schedule scope. |
list_sourcesread-only | List all news sources monitored for your account, including custom RSS feeds and disabled global source overrides. |
list_storiesread-only | List the signed-in account’s scored news Stories, filtered by minimum relevance and industry and sorted by relevance or recency. Returns a readable summary per Story (ID, title, source, URL, relevance as a percentage, summary) and structuredContent { count, stories } where each Story has id, title, summary, source_name, url, relevance_score (0 to 1), detected_at, urgency, status and metadata. Use it to find what is worth writing about today, then pass a Story id to get_story for the full record or to generate_post to write a Jack from it. Only Stories NewsJack has already scanned into this account are returned; it does not fetch feeds or search the web. Read-only, no allowance used. Needs the read:stories scope; anonymous callers get an authentication error. An empty result means nothing matched, so lower min_relevance or drop category. |
remove_sourcedestructive | Delete a custom news feed by its ID. Use list_sources to find source IDs. |
roast_postread-only | Evaluate a draft social post against the live music industry news cycle. Returns critical editorial feedback, quality score (0-100), timeliness verdict, and an improved rewrite. Does NOT publish or modify content. |
schedule_post | Schedule a draft post for publishing at a designated future time. Supply content directly or reference existing content_id. |
set_generation_config | Update the sampling, length, and additional writing rules used for future Jacks. |
set_voice_profile | Save custom brand voice settings (tone, sample posts, avoid words, emoji/hashtag rules) for the authenticated user. Applied to future Jacks. |
toggle_source | Pause or resume one of the account’s own custom RSS sources, identified by source_id from list_sources. It only works on feeds added with add_source. To mute or unmute one of NewsJack’s built-in publications, use disable_global_source and enable_global_source, which take the publication name instead. Reversible and idempotent: setting the same value twice changes nothing. Pausing keeps the source configured; remove_source deletes it. |
Schemas: list_tools.
{
"name": "io.github.chrisschouk/newsjack",
"icons": [
{
"src": "https://newsjack.cc/favicon.svg",
"sizes": [
"any"
],
"mimeType": "image/svg+xml"
}
],
"title": "NewsJack",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://newsjack.cc/api/mcp",
"type": "streamable-http"
}
],
"version": "0.2.1",
"repository": {
"url": "https://github.com/chrisschouk/newsjack",
"source": "github"
},
"websiteUrl": "https://newsjack.cc",
"description": "Music-industry news scored for your brand, with a drafted post in your voice."
}