DevelopersMedialyst MCP

Medialyst MCP

Medialyst exposes a remote MCP server for agents that need a small set of public REST-backed research tools:

https://medialyst.ai/api/mcp

Each MCP tool is a thin shim over a public /api/v1/* REST endpoint. Tool results, auth failures, quota errors, and response shapes match the public API.

API key auth

Use a Medialyst API key for MCP tool calls. OAuth discovery and consent still exist for compatible clients, but the slim MCP tool surface calls the public REST API, which currently requires API-key authentication.

Required Scopes

ScopeNeeded for
news:searchSearching recent news coverage
media_lists:manageEnriching journalists and polling enrichment jobs

Connect Your Agent

Create an API key from Developers, store it in secret storage or an environment variable, and send it as a bearer token:

Authorization: Bearer <YOUR_API_KEY>

Clients without custom headers

If a client cannot attach an Authorization header, pass the key on the URL as ?api_key=<YOUR_API_KEY>. The server strips the query parameter and treats it as the same bearer token.

Claude Code

export MEDIALYST_API_KEY="<YOUR_API_KEY>"

claude mcp add --transport http --scope user medialyst https://medialyst.ai/api/mcp \
  --header "Authorization: Bearer $MEDIALYST_API_KEY"

Verify in Claude Code:

/mcp

Claude.ai Custom Connector

Claude.ai custom connectors do not expose custom HTTP headers in the setup UI. Pass the key on the URL:

https://medialyst.ai/api/mcp?api_key=<YOUR_API_KEY>

Protect connector URLs

Because the API key is in the connector URL, it may be logged in plain text by intermediate proxies, CDNs, or server access logs. Use a dedicated API key with the minimum required scopes. If the key is exposed, revoke and rotate it from Developers.

Claude Desktop

{
  "mcpServers": {
    "medialyst": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://medialyst.ai/api/mcp",
        "--header",
        "Authorization: ${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}

Cursor

{
  "mcpServers": {
    "medialyst": {
      "url": "https://medialyst.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer ${env:MEDIALYST_API_KEY}"
      }
    }
  }
}

Then start Cursor from a shell where the key is exported:

export MEDIALYST_API_KEY="<YOUR_API_KEY>"
cursor .

Codex

[mcp_servers.medialyst]
url = "https://medialyst.ai/api/mcp"
bearer_token_env_var = "MEDIALYST_API_KEY"

Then export the key before starting Codex:

export MEDIALYST_API_KEY="<YOUR_API_KEY>"
codex mcp list

Other Clients

Use the Streamable HTTP endpoint and bearer header directly:

MCP URL: https://medialyst.ai/api/mcp
Transport: Streamable HTTP
Header: Authorization: Bearer <YOUR_API_KEY>

If your client only supports stdio servers, bridge to the remote endpoint with mcp-remote.

Tool Surface

MCP toolPublic REST endpointScope
get_credit_balanceGET /api/v1/credits/balanceAPI key
search_newsPOST /api/v1/news/searchnews:search
enrich_journalistsPOST /api/v1/journalists/enrichmedia_lists:manage
get_journalist_enrichment_jobGET /api/v1/journalist-enrichment-jobs/:jobIdmedia_lists:manage

Only these four tools are exposed. Media-list workflow creation, workflow row reads, and share-link creation stay in the public REST API and Medialyst app, but are not part of the MCP tool surface.

Example Workflows

Ask your agent:

Search recent AI agents coverage and find 5 journalists I should pitch on a related angle.

Expected sequence:

  1. get_credit_balance
  2. search_news with a specific recency window
  3. enrich_journalists with selected article URLs and fit_context.pitch
  4. get_journalist_enrichment_job until the job is complete or failed

Notes

  • search_news returns up to 10 results per call. Use page: 2, page: 3, and so on for deeper coverage. Do not use the deprecated num parameter.
  • enrich_journalists is async-only and returns a job id immediately. It accepts article_url sources today. fit_context.pitch returns scored journalist research and personalized angle output when available.
  • options.wait and options.timeout_ms on enrich_journalists are deprecated compatibility no-ops. Poll get_journalist_enrichment_job instead.
  • Public v1 has no send endpoint. Review and sending stay in the Medialyst app.

Troubleshooting

SymptomWhat to check
401 UnauthorizedMissing, expired, or revoked API key. Verify the bearer header or api_key query fallback.
403 ForbiddenThe key is valid but lacks the required scope.
402 Payment RequiredCredits or usage limits block the operation.
Fewer tools visible than expectedAsk your client to refresh or search MCP tools by name. The current public surface has four tools.
Validation errorsMatch the tool input to the corresponding public REST endpoint schema.

Agent Skill

For open-source agents, use a small bootstrap skill that tells the agent how to connect and which REST-backed tools to call. Keep detailed schemas on the server.

Install the Medialyst MCP agent skill.