Core Services MCP
Broadcast Media MCP Server
Television, radio, channels, programs, transcripts, broadcast journalism, and audiovisual news coverage.
MCP Version: 1.0.0 9 MCP Tools Authentication
Base URL
https://mcp.pressmonitor.com/ Authentication
MCP calls also use Bearer tokens over JSON-RPC 2.0 requests.
Authorization: Bearer YOUR_TOKEN Discover Tools
Start by listing the tools exposed by the MCP server.
curl -X POST \ 'https://mcp.pressmonitor.com/' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' const response = await fetch('https://mcp.pressmonitor.com/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, body: JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'tools/list' }) }); console.log(await response.json()); import requests payload = { 'jsonrpc': '2.0', 'id': 1, 'method': 'tools/list' } response = requests.post( 'https://mcp.pressmonitor.com/', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
search_channels Search Channels
Search for available TV and radio channels
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | No | Search terms or keywords |
| country_code | string | No | Filter by country code (ISO 3166-1 alpha-2) |
| count | string | No | Number of results to return |
Code Examples
curl -X POST \ 'https://mcp.pressmonitor.com/' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_channels","arguments":{"query":"SOME_STRING_VALUE","country_code":"SOME_STRING_VALUE","count":20}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_channels", "arguments": { "query": "SOME_STRING_VALUE", "country_code": "SOME_STRING_VALUE", "count": 20 } } }; const response = await fetch('https://mcp.pressmonitor.com/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, body: JSON.stringify(payload) }); console.log(await response.json()); import requests payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_channels", "arguments": { "query": "SOME_STRING_VALUE", "country_code": "SOME_STRING_VALUE", "count": 20 } } } response = requests.post( 'https://mcp.pressmonitor.com/', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
search_headlines Search Headlines
Get broadcast headlines
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | Search terms or keywords |
| channel | string | No | Channel ID to filter by |
| country_code | string | No | Filter by country code (ISO 3166-1 alpha-2) |
| lang_code | string | No | Filter by language code (ISO 639-1) |
| count | string | No | Number of results to return |
Code Examples
curl -X POST \ 'https://mcp.pressmonitor.com/' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_headlines","arguments":{"query":"SOME_STRING_VALUE","channel":"SOME_STRING_VALUE","country_code":"SOME_STRING_VALUE","lang_code":"SOME_STRING_VALUE","count":20}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_headlines", "arguments": { "query": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "country_code": "SOME_STRING_VALUE", "lang_code": "SOME_STRING_VALUE", "count": 20 } } }; const response = await fetch('https://mcp.pressmonitor.com/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, body: JSON.stringify(payload) }); console.log(await response.json()); import requests payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_headlines", "arguments": { "query": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "country_code": "SOME_STRING_VALUE", "lang_code": "SOME_STRING_VALUE", "count": 20 } } } response = requests.post( 'https://mcp.pressmonitor.com/', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
search_briefs Search Briefs
Get broadcast briefs (headline + description)
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | Search terms or keywords |
| channel | string | No | Channel ID to filter by |
| count | string | No | Number of results to return |
Code Examples
curl -X POST \ 'https://mcp.pressmonitor.com/' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_briefs","arguments":{"query":"SOME_STRING_VALUE","channel":"SOME_STRING_VALUE","count":20}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_briefs", "arguments": { "query": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "count": 20 } } }; const response = await fetch('https://mcp.pressmonitor.com/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, body: JSON.stringify(payload) }); console.log(await response.json()); import requests payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_briefs", "arguments": { "query": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "count": 20 } } } response = requests.post( 'https://mcp.pressmonitor.com/', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
search_transcripts Search Transcripts
Get full broadcast transcripts
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | Search terms or keywords |
| channel | string | No | Channel ID to filter by |
| count | string | No | Number of results to return |
Code Examples
curl -X POST \ 'https://mcp.pressmonitor.com/' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_transcripts","arguments":{"query":"SOME_STRING_VALUE","channel":"SOME_STRING_VALUE","count":20}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_transcripts", "arguments": { "query": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "count": 20 } } }; const response = await fetch('https://mcp.pressmonitor.com/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, body: JSON.stringify(payload) }); console.log(await response.json()); import requests payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_transcripts", "arguments": { "query": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "count": 20 } } } response = requests.post( 'https://mcp.pressmonitor.com/', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
search_transcripts_metadata Search Transcripts Metadata
Get transcripts with timing segments and speaker info
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | Search terms or keywords |
| channel | string | No | Channel ID to filter by |
| count | string | No | Number of results to return |
Code Examples
curl -X POST \ 'https://mcp.pressmonitor.com/' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_transcripts_metadata","arguments":{"query":"SOME_STRING_VALUE","channel":"SOME_STRING_VALUE","count":20}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_transcripts_metadata", "arguments": { "query": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "count": 20 } } }; const response = await fetch('https://mcp.pressmonitor.com/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, body: JSON.stringify(payload) }); console.log(await response.json()); import requests payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_transcripts_metadata", "arguments": { "query": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "count": 20 } } } response = requests.post( 'https://mcp.pressmonitor.com/', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
search_headlines_translated Search Headlines Translated
Get translated broadcast headlines
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | Search terms or keywords |
| target_lang_code | string | Yes | Target language code for translation (ISO 639-1) |
| channel | string | No | Channel ID to filter by |
| count | string | No | Number of results to return |
Code Examples
curl -X POST \ 'https://mcp.pressmonitor.com/' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_headlines_translated","arguments":{"query":"SOME_STRING_VALUE","target_lang_code":"SOME_STRING_VALUE","channel":"SOME_STRING_VALUE","count":20}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_headlines_translated", "arguments": { "query": "SOME_STRING_VALUE", "target_lang_code": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "count": 20 } } }; const response = await fetch('https://mcp.pressmonitor.com/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, body: JSON.stringify(payload) }); console.log(await response.json()); import requests payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_headlines_translated", "arguments": { "query": "SOME_STRING_VALUE", "target_lang_code": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "count": 20 } } } response = requests.post( 'https://mcp.pressmonitor.com/', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
search_briefs_translated Search Briefs Translated
Get translated broadcast briefs
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | Search terms or keywords |
| target_lang_code | string | Yes | Target language code for translation (ISO 639-1) |
| channel | string | No | Channel ID to filter by |
| count | string | No | Number of results to return |
Code Examples
curl -X POST \ 'https://mcp.pressmonitor.com/' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_briefs_translated","arguments":{"query":"SOME_STRING_VALUE","target_lang_code":"SOME_STRING_VALUE","channel":"SOME_STRING_VALUE","count":20}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_briefs_translated", "arguments": { "query": "SOME_STRING_VALUE", "target_lang_code": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "count": 20 } } }; const response = await fetch('https://mcp.pressmonitor.com/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, body: JSON.stringify(payload) }); console.log(await response.json()); import requests payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_briefs_translated", "arguments": { "query": "SOME_STRING_VALUE", "target_lang_code": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "count": 20 } } } response = requests.post( 'https://mcp.pressmonitor.com/', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
search_transcripts_translated Search Transcripts Translated
Get translated broadcast transcripts
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | Search terms or keywords |
| target_lang_code | string | Yes | Target language code for translation (ISO 639-1) |
| channel | string | No | Channel ID to filter by |
| count | string | No | Number of results to return |
Code Examples
curl -X POST \ 'https://mcp.pressmonitor.com/' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_transcripts_translated","arguments":{"query":"SOME_STRING_VALUE","target_lang_code":"SOME_STRING_VALUE","channel":"SOME_STRING_VALUE","count":20}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_transcripts_translated", "arguments": { "query": "SOME_STRING_VALUE", "target_lang_code": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "count": 20 } } }; const response = await fetch('https://mcp.pressmonitor.com/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, body: JSON.stringify(payload) }); console.log(await response.json()); import requests payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_transcripts_translated", "arguments": { "query": "SOME_STRING_VALUE", "target_lang_code": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "count": 20 } } } response = requests.post( 'https://mcp.pressmonitor.com/', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
search_transcripts_metadata_translated Search Transcripts Metadata Translated
Get translated transcripts with timing segments
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | Search terms or keywords |
| target_lang_code | string | Yes | Target language code for translation (ISO 639-1) |
| channel | string | No | Channel ID to filter by |
| count | string | No | Number of results to return |
Code Examples
curl -X POST \ 'https://mcp.pressmonitor.com/' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_transcripts_metadata_translated","arguments":{"query":"SOME_STRING_VALUE","target_lang_code":"SOME_STRING_VALUE","channel":"SOME_STRING_VALUE","count":20}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_transcripts_metadata_translated", "arguments": { "query": "SOME_STRING_VALUE", "target_lang_code": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "count": 20 } } }; const response = await fetch('https://mcp.pressmonitor.com/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, body: JSON.stringify(payload) }); console.log(await response.json()); import requests payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_transcripts_metadata_translated", "arguments": { "query": "SOME_STRING_VALUE", "target_lang_code": "SOME_STRING_VALUE", "channel": "SOME_STRING_VALUE", "count": 20 } } } response = requests.post( 'https://mcp.pressmonitor.com/', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json())