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
| Setting | Value |
|---|---|
| Server URL | https://api.meltwater.com/v2/mcp |
| Transport | Streamable HTTP |
| Authentication | OAuth 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
apikeyheader. - 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.
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.
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.
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.
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.