PR Agents on Medialyst
Medialyst gives your agent the data: real-time news search and journalist enrichment, over REST and the MCP server. That's the layer underneath the work — every result grounded in live coverage and real, recent bylines, not model memory.
There are two ways to build on it.
Use newsjack.sh (the full agent)
newsjack.sh is the open-source PR agent built on Medialyst. It's the smoothest way to put Medialyst to work from Claude, ChatGPT, Cursor, or your own terminal — opinionated skills for the whole PR loop, not just raw tool calls.
- Open source: github.com/elvisun/newsjack
- OAuth device login: run
newsjack login, approve the browser prompt, and you're connected — no API key to copy out of the terminal. - The full loop: find angles from live news, build a fit-scored journalist list, and draft pitches — with review and sending kept human-in-the-loop.
Reach for newsjack.sh when you want a working PR agent out of the box instead of assembling the primitives yourself.
Build your own agent (the primitives)
Prefer to wire Medialyst into your own agent? Point any MCP-capable client at the server and call the thirteen REST-backed tools:
https://medialyst.ai/api/mcpget_credit_balance→GET /api/v1/credits/balancecreate_media_list→POST /api/v1/media-lists:create-asyncget_media_list_job→GET /api/v1/jobs/:jobIdget_media_list→GET /api/v1/media-lists/:mediaListIdlookup_article→GET /api/v1/articles/lookuplookup_articles→POST /api/v1/articles/lookup:batchlookup_publication→GET /api/v1/publications/lookuplookup_publications→POST /api/v1/publications/lookup:batchsearch_news→POST /api/v1/news/searchquery_pr_calendar→POST /api/v1/pr-calendar/querylist_journalist_moves→GET /api/v1/journalist-movesenrich_journalists→POST /api/v1/journalists/enrichget_journalist_enrichment_job→GET /api/v1/journalist-enrichment-jobs/:jobId
The fourteenth hosted tool, list_journalist_requests, is MCP-only.
A few rules keep agents honest:
- Use
journalist_referencefor a known journalist.namerequires at least one ofpublication,domain, or a real identifyingurl. - Use
article_urlfor a real article fromsearch_newsor the user when enriching its author. Never invent URLs. - Use
query_pr_calendarfor planning moments, awareness days, conferences, and pitch timing. - Use
lookup_articlefor one known article URL and optional Markdown; uselookup_articlesfor 1-10 URLs without Markdown. - Use
lookup_publicationfor one outlet or article URL.lookup_publicationsaccepts 1-25 cached/default URLs, or at most five withforce_refresh: true. - Budget 0.1 credit per successful article URL and 0.01 credit per successful publication URL. Per-URL failures cost 0 credits.
- All four lookup tools require
media_lists:manage. - Use
fit_context.pitchonenrich_journalistswhen you want scored fit or pitch angles. enrich_journalistsis async-only: it returns a job id; pollget_journalist_enrichment_jobuntil the job is complete or failed.- To build a list, call
create_media_listwith a prompt andtarget_list_sizeas a credit budget, plus a stablerequest_options.idempotency_key; pollget_media_list_jobto a terminal status, then callget_media_listwithinclude_rows: trueandrow_detail: "full". - Save and reuse the returned
job_idandmedia_list_id; job and table reads are organization-scoped. - Use returned ids. Do not invent enrichment, media-list job, or media-list ids.
- The MCP cannot mutate generated table rows, create share links, or send outreach. Review and sending stay in the Medialyst app, where the person whose reputation is on the line keeps final judgment.
Canonical media-list flow:
create_media_list
-> get_media_list_job until complete, failed, or cancelled
-> get_media_list(media_list_id, include_rows=true, row_detail=full)
-> continue with page.next_cursor until nullCanonical known-journalist input:
{
"from": [
{
"type": "journalist_reference",
"name": "Jane Doe",
"publication": "The Daily Example"
}
]
}See Medialyst MCP for OAuth and API-key setup, the full tool surface, and troubleshooting.