MCP Server

The PulitzerAI MCP Server exposes OpenAPI capabilities as Agent-friendly tools through the Model Context Protocol.

Overview

MCP does not expose REST endpoints directly. It uses a JSON-RPC 2.0 interface centered on tools/list and tools/call. It provides tools suitable for Agent integrations, including reads, AI generation and editing, async collection, release preparation, and performance analysis. Operations that require separate confirmation, such as delete, payment, live external release execution, and binary file download, are not provided as MCP tools.


Endpoint

https://api.pulitzer.ai/live/tools/mcp
The transport is Streamable HTTP, and the request body is an MCP JSON-RPC 2.0 message.

Authentication

The recommended authentication path is OAuth 2.0 Authorization Code flow. The MCP client discovers OAuth metadata, redirects the user to the PulitzerAI login/consent screen, exchanges the authorization code for an access token, and sends it in the Authorization: Bearer header for tool calls. Existing API key tokens remain supported for compatibility through Authorization: Bearer or the PULITZER-API-KEY header.

Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN

# Compatibility only
PULITZER-API-KEY: YOUR_API_KEY

Tool Catalog

DomainTools
Reporter Data
get_reporter_categoriessearch_reporterssearch_reporters_by_media
Billing
get_api_credit_balanceget_api_usage_historyget_api_daily_usageget_api_monthly_usageget_api_cost_config
Press and Content
generate_press_releasemodify_press_releasegenerate_blog_postgenerate_sns_contentcreate_adcopycreate_generic_contenttranslate_articletranslate_text
News Clipping
list_newsclip_feedssearch_newsclip_articlesquick_search_newsget_newsclip_articlerequest_news_clipping_custom_collectget_news_clipping_custom_collect_status
Release and Performance
prepare_releasecreate_release_draftget_release_statusget_release_resultanalyze_campaign_performancerank_reporters_by_performancerank_media_by_performance
CRM Workspace
list_crm_workspaceslist_workspace_reportersadd_workspace_reporterrecord_reporter_meetingsummarize_workspace_pr_outcomes

Call Example

{
  "jsonrpc": "2.0",
  "id": 10,
  "method": "tools/call",
  "params": {
    "name": "search_reporters",
    "arguments": {
      "category_names": [
        "경제",
        "IT"
      ],
      "page": 1,
      "page_size": 10
    }
  }
}
{
  "content": [
    {
      "type": "text",
      "text": "기자 검색이 μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€."
    }
  ],
  "structuredContent": {
    "summary": "기자 10λͺ…을 μ°Ύμ•˜μŠ΅λ‹ˆλ‹€.",
    "data": [],
    "billing": {
      "charged": true,
      "credit_kind": "API_CREDIT"
    }
  }
}

Operational Policy

  • OAuth access tokens are sent in the Authorization Bearer header, not as tool input.
  • The MCP session id is not authentication data. User identity is resolved from the OAuth token subject or compatible token user context.
  • Long-running jobs such as custom news collection return a collect_id from the request tool and are polled through a status tool.
  • Insufficient credits, permission failures, and async job failures are distinguished through JSON-RPC error.data.reason.
  • Delete, payment/credit charge, live external release execution, and binary file handling are not provided as MCP tools.