平台智能 MCP
SubstackMCP服务器
Substack 拥有数百万读者,并支持超过 500 万个付费订阅,涵盖新闻稿、论文、播客和视频,是思想领导力、拥有人群和直接面向读者收入的重要平台。
MCP 版本: 1.0.0 10 MCP工具 身份验证
基本网址
https://mcp.pressmonitor.com/substack/v1 身份验证
MCP 调用也使用 Bearer 令牌通过 JSON-RPC 2.0 请求。
Authorization: Bearer YOUR_TOKEN 发现工具
首先列出MCP服务器公开的工具。
curl -X POST \ 'https://mcp.pressmonitor.com/substack/v1' \ -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/substack/v1', { 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/substack/v1', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
feed Feed
Feed
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| cursor | string | 不 | 游标 |
| tab | string | 不 | 标签页 |
代码示例
curl -X POST \ 'https://mcp.pressmonitor.com/substack/v1' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"feed","arguments":{"cursor":"NEXT_CURSOR","tab":"SOME_STRING_VALUE"}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "feed", "arguments": { "cursor": "NEXT_CURSOR", "tab": "SOME_STRING_VALUE" } } }; const response = await fetch('https://mcp.pressmonitor.com/substack/v1', { 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": "feed", "arguments": { "cursor": "NEXT_CURSOR", "tab": "SOME_STRING_VALUE" } } } response = requests.post( 'https://mcp.pressmonitor.com/substack/v1', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
profile_activity 个人资料活动
个人资料活动
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| profile_id | string | 是 | 个人资料ID |
代码示例
curl -X POST \ 'https://mcp.pressmonitor.com/substack/v1' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"profile_activity","arguments":{"profile_id":"SOME_STRING_VALUE"}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "profile_activity", "arguments": { "profile_id": "SOME_STRING_VALUE" } } }; const response = await fetch('https://mcp.pressmonitor.com/substack/v1', { 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": "profile_activity", "arguments": { "profile_id": "SOME_STRING_VALUE" } } } response = requests.post( 'https://mcp.pressmonitor.com/substack/v1', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
profile_posts 个人资料帖子
个人资料帖子
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| profile_id | string | 是 | 个人资料ID |
代码示例
curl -X POST \ 'https://mcp.pressmonitor.com/substack/v1' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"profile_posts","arguments":{"profile_id":"SOME_STRING_VALUE"}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "profile_posts", "arguments": { "profile_id": "SOME_STRING_VALUE" } } }; const response = await fetch('https://mcp.pressmonitor.com/substack/v1', { 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": "profile_posts", "arguments": { "profile_id": "SOME_STRING_VALUE" } } } response = requests.post( 'https://mcp.pressmonitor.com/substack/v1', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
profile_public 公开个人资料
公开个人资料
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| handle | string | 是 | 用户名 |
代码示例
curl -X POST \ 'https://mcp.pressmonitor.com/substack/v1' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"profile_public","arguments":{"handle":"SOME_STRING_VALUE"}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "profile_public", "arguments": { "handle": "SOME_STRING_VALUE" } } }; const response = await fetch('https://mcp.pressmonitor.com/substack/v1', { 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": "profile_public", "arguments": { "handle": "SOME_STRING_VALUE" } } } response = requests.post( 'https://mcp.pressmonitor.com/substack/v1', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
reader_comment 读者评论
读者评论
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| comment_id | string | 是 | 评论ID |
代码示例
curl -X POST \ 'https://mcp.pressmonitor.com/substack/v1' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"reader_comment","arguments":{"comment_id":"SOME_STRING_VALUE"}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "reader_comment", "arguments": { "comment_id": "SOME_STRING_VALUE" } } }; const response = await fetch('https://mcp.pressmonitor.com/substack/v1', { 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": "reader_comment", "arguments": { "comment_id": "SOME_STRING_VALUE" } } } response = requests.post( 'https://mcp.pressmonitor.com/substack/v1', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
reader_comment_replies 读者评论回复
读者评论回复
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| comment_id | string | 是 | 评论ID |
代码示例
curl -X POST \ 'https://mcp.pressmonitor.com/substack/v1' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"reader_comment_replies","arguments":{"comment_id":"SOME_STRING_VALUE"}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "reader_comment_replies", "arguments": { "comment_id": "SOME_STRING_VALUE" } } }; const response = await fetch('https://mcp.pressmonitor.com/substack/v1', { 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": "reader_comment_replies", "arguments": { "comment_id": "SOME_STRING_VALUE" } } } response = requests.post( 'https://mcp.pressmonitor.com/substack/v1', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
reader_post 读者帖子
读者帖子
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| post_id | string | 是 | 帖子ID |
代码示例
curl -X POST \ 'https://mcp.pressmonitor.com/substack/v1' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"reader_post","arguments":{"post_id":"SOME_STRING_VALUE"}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "reader_post", "arguments": { "post_id": "SOME_STRING_VALUE" } } }; const response = await fetch('https://mcp.pressmonitor.com/substack/v1', { 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": "reader_post", "arguments": { "post_id": "SOME_STRING_VALUE" } } } response = requests.post( 'https://mcp.pressmonitor.com/substack/v1', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
search_people 搜索用户
搜索用户
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| query | string | 是 | 搜索查询 |
| page | string | 不 | 页码 |
代码示例
curl -X POST \ 'https://mcp.pressmonitor.com/substack/v1' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_people","arguments":{"query":"SOME_STRING_VALUE","page":20}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_people", "arguments": { "query": "SOME_STRING_VALUE", "page": 20 } } }; const response = await fetch('https://mcp.pressmonitor.com/substack/v1', { 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_people", "arguments": { "query": "SOME_STRING_VALUE", "page": 20 } } } response = requests.post( 'https://mcp.pressmonitor.com/substack/v1', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
search_post 搜索帖子
搜索帖子
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| query | string | 是 | 搜索查询 |
| page | string | 不 | 页码 |
代码示例
curl -X POST \ 'https://mcp.pressmonitor.com/substack/v1' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_post","arguments":{"query":"SOME_STRING_VALUE","page":20}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_post", "arguments": { "query": "SOME_STRING_VALUE", "page": 20 } } }; const response = await fetch('https://mcp.pressmonitor.com/substack/v1', { 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_post", "arguments": { "query": "SOME_STRING_VALUE", "page": 20 } } } response = requests.post( 'https://mcp.pressmonitor.com/substack/v1', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json()) tool
search_top 搜索头条
搜索头条
参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| query | string | 是 | 搜索查询 |
代码示例
curl -X POST \ 'https://mcp.pressmonitor.com/substack/v1' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_TOKEN' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_top","arguments":{"query":"SOME_STRING_VALUE"}}}' const payload = { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_top", "arguments": { "query": "SOME_STRING_VALUE" } } }; const response = await fetch('https://mcp.pressmonitor.com/substack/v1', { 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_top", "arguments": { "query": "SOME_STRING_VALUE" } } } response = requests.post( 'https://mcp.pressmonitor.com/substack/v1', headers={ 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, json=payload, ) print(response.json())