Skip to main content

Call Meltwater MCP over HTTP

Call the public MCP over HTTP from your own code. The payload is JSON-RPC, not a separate REST resource list. Every client connects to the same Meltwater MCP server, so the URL and sign-in are the same wherever you use it.

Connection details​

SettingValue
Server URLhttps://api.meltwater.com/v2/mcp
TransportStreamable HTTP
AuthenticationOAuth sign-in at app.meltwater.com, or a Meltwater API token in the apikey header

Before you start​

  • A Meltwater account with access to Meltwater MCP.
  • The server URL, exactly https://api.meltwater.com/v2/mcp, with no trailing slash.
  • A Meltwater API token. See API Credentials to create one, and send it in the apikey header.
  • An HTTP client. The examples use curl and the OpenAI Responses API.

Connect​

1. Initialize the session​

POST a JSON-RPC initialize to the public URL. Include an Accept header so the server can answer with JSON or an event stream, and include response headers (-i) so you can copy Mcp-Session-Id when the server returns one. The Building agents guide authenticates with an apikey header, not a query parameter. Replace the placeholder from an environment variable.

Terminal
curl -sS -i https://api.meltwater.com/v2/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "apikey: <YOUR MELTWATER API KEY>" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-03-26",
"capabilities": {},
"clientInfo": { "name": "meltwater-manual", "version": "1.0.0" }
}
}'

2. Send initialized, then list tools​

After initialize succeeds, POST notifications/initialized before tools/list. That notification has no id. If the initialize response includes an Mcp-Session-Id header, send that value on both requests below. Delete the Mcp-Session-Id line when initialize did not return one. A placeholder is not a session id. tools/list returns the tools that token can call. Call a tool with tools/call only after you have read its input schema from that list.

Terminal
curl -sS https://api.meltwater.com/v2/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "apikey: <YOUR MELTWATER API KEY>" \
-H "Mcp-Session-Id: <session id from initialize>" \
-d '{"jsonrpc":"2.0","method":"notifications/initialized"}'

curl -sS https://api.meltwater.com/v2/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "apikey: <YOUR MELTWATER API KEY>" \
-H "Mcp-Session-Id: <session id from initialize>" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

3. Or let an agent framework handle the protocol​

If you are building an agent, you don't need to send these requests yourself - agent frameworks such as the OpenAI Agents SDK and the Anthropic SDK manage the MCP session for you. See Building agents with Meltwater MCP for examples.

4. Treat each request as new​

Send initialize again after a restart or a failed call, then notifications/initialized, then tools/list, before you depend on a tool still being there.

Check the connection​

Once the server shows as connected, paste this prompt into a new conversation. It only uses tools the client has actually listed.

First session
I just connected Meltwater. Use the Meltwater MCP tools if they are available.

1. Confirm the connection by listing the tools you can call. If none are listed, say so and stop.
2. Ask me which brand, company, or topic to brief if I have not named one.
3. Use the available tools to pull recent coverage and the main narratives. Cite the source and date for each material fact the tools return.
4. Return a short briefing: what is being said, what changed, what is unresolved, and one recommended next action.
5. Before calling a tool, check its schema. Ask only for missing inputs, in a single message, then name the tools you will call.
See which tools you can access

Use the Tools Explorer to browse the tools available to your account - each tool's name, description and parameters - without connecting a client.

If it does not connect​

The URL is rejected

Use HTTPS and the exact URL https://api.meltwater.com/v2/mcp. A trailing slash, an http:// scheme, or any other Meltwater URL won't reach the server.

The client only offers SSE

Choose Streamable HTTP, which uses POST. An unauthenticated GET, POST or DELETE to the server URL returns 401 with the body no bearer token.

Tools stay empty after sign-in

Start a new chat so the client runs initialize and tools/list again. Check that the Meltwater account you signed in with has access to Meltwater MCP.

Still stuck?

Take a look at the FAQs, or contact our Support team.