socialscrape-mcp 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- socialscrape_mcp-0.1.0/LICENSE +21 -0
- socialscrape_mcp-0.1.0/MANIFEST.in +2 -0
- socialscrape_mcp-0.1.0/PKG-INFO +84 -0
- socialscrape_mcp-0.1.0/README.md +64 -0
- socialscrape_mcp-0.1.0/pyproject.toml +31 -0
- socialscrape_mcp-0.1.0/setup.cfg +4 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp/__init__.py +3 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp/__main__.py +3 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp/catalog.json +18929 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp/catalog.py +165 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp/cli.py +61 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp/client.py +103 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp/http_app.py +122 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp/protocol.py +115 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp/render.py +129 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp/settings.py +43 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp/stdio.py +39 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp/tools.py +740 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp.egg-info/PKG-INFO +84 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp.egg-info/SOURCES.txt +22 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp.egg-info/dependency_links.txt +1 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp.egg-info/entry_points.txt +2 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp.egg-info/requires.txt +10 -0
- socialscrape_mcp-0.1.0/socialscrape_mcp.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 The Casey Company LLC (SocialScrape)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: socialscrape-mcp
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: MCP server for SocialScrape: social media data for Claude, Cursor and other agents
|
|
5
|
+
License-Expression: MIT
|
|
6
|
+
Project-URL: Homepage, https://socialscrape.dev
|
|
7
|
+
Project-URL: Documentation, https://socialscrape.dev/docs
|
|
8
|
+
Requires-Python: >=3.10
|
|
9
|
+
Description-Content-Type: text/markdown
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Requires-Dist: httpx<1,>=0.27
|
|
12
|
+
Provides-Extra: http
|
|
13
|
+
Requires-Dist: starlette>=0.40; extra == "http"
|
|
14
|
+
Requires-Dist: uvicorn>=0.30; extra == "http"
|
|
15
|
+
Provides-Extra: test
|
|
16
|
+
Requires-Dist: pytest>=8; extra == "test"
|
|
17
|
+
Requires-Dist: starlette>=0.40; extra == "test"
|
|
18
|
+
Requires-Dist: uvicorn>=0.30; extra == "test"
|
|
19
|
+
Dynamic: license-file
|
|
20
|
+
|
|
21
|
+
# socialscrape-mcp
|
|
22
|
+
|
|
23
|
+
The SocialScrape MCP server: social media data (profiles, posts, comments, search, ads,
|
|
24
|
+
transcripts) for Claude, Cursor and any other MCP client that starts a local server.
|
|
25
|
+
|
|
26
|
+
It is **generated from SocialScrape's endpoint registry** and grouped so an agent sees a usable number of tools instead of one per endpoint:
|
|
27
|
+
|
|
28
|
+
| Tools | What |
|
|
29
|
+
|---|---|
|
|
30
|
+
| `get_transcript`, `search`, `get_profile`, `get_post`, `get_comments` | The jobs agents do most, across platforms. The platform is an argument. |
|
|
31
|
+
| one per platform (`github`, `facebook`, `twitter`, ...) | `resource` picks the data (`user`, `profile.posts`, ...); parameters follow. |
|
|
32
|
+
| `describe` | Exact parameters, allowed values, price, example arguments. Free, no API call. |
|
|
33
|
+
| `call_endpoint`, `batch`, `get_job`, `monitors`, `get_credits` | Any endpoint by id, up to 100 requests in one call, async jobs, webhooks, balance. |
|
|
34
|
+
|
|
35
|
+
Only built endpoints appear as tools. A platform shows up in the next release after its endpoints are built.
|
|
36
|
+
|
|
37
|
+
Every result starts with `ok | credits charged: 1 | credits remaining: 4999` (and the structured
|
|
38
|
+
copy carries the numbers as fields). Failures are free and come back as `isError` with the API's
|
|
39
|
+
error code, a `retryable` flag and what to do next.
|
|
40
|
+
|
|
41
|
+
## Use it
|
|
42
|
+
|
|
43
|
+
The server runs on your own machine. Your MCP client (Claude Desktop, Claude Code, Cursor) starts it as a
|
|
44
|
+
subprocess over stdio. SocialScrape does not run a hosted MCP server, so there is no MCP URL to connect to.
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{ "mcpServers": { "socialscrape": {
|
|
48
|
+
"command": "uvx", "args": ["socialscrape-mcp"],
|
|
49
|
+
"env": { "SOCIALSCRAPE_API_KEY": "ss_live_..." } } } }
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Get a key at <https://socialscrape.dev/app>. Tool discovery works without a key; a tool call without one
|
|
53
|
+
explains how to add it.
|
|
54
|
+
|
|
55
|
+
**Fewer tools.** Some clients cap the number of tools (Cursor warns past 40). Narrow the list in the `env`
|
|
56
|
+
block:
|
|
57
|
+
|
|
58
|
+
| | Setting |
|
|
59
|
+
|---|---|
|
|
60
|
+
| only some platforms | `SOCIALSCRAPE_PLATFORMS=github,threads` |
|
|
61
|
+
| only the cross-platform and account tools | `SOCIALSCRAPE_TOOLSETS=core` |
|
|
62
|
+
| only the platform tools | `SOCIALSCRAPE_TOOLSETS=platforms` |
|
|
63
|
+
|
|
64
|
+
With `core` alone an agent still reaches every endpoint through `describe` and `call_endpoint`.
|
|
65
|
+
|
|
66
|
+
**Serve it over HTTP yourself.** For a client that can only reach a URL, install the extra and run the
|
|
67
|
+
server on a host you control: `pip install 'socialscrape-mcp[http]'`, then `socialscrape-mcp http --host
|
|
68
|
+
127.0.0.1 --port 8080`. Each request carries its own key in the `x-api-key` header (or
|
|
69
|
+
`Authorization: Bearer ...`), and `?platforms=` and `?toolsets=` narrow the tools. This is yours to run and
|
|
70
|
+
secure; SocialScrape does not offer it as a service.
|
|
71
|
+
|
|
72
|
+
## Settings (environment)
|
|
73
|
+
|
|
74
|
+
| Variable | Default | |
|
|
75
|
+
|---|---|---|
|
|
76
|
+
| `SOCIALSCRAPE_API_KEY` | none | stdio only; the HTTP mode reads each request's key |
|
|
77
|
+
| `SOCIALSCRAPE_API_URL` | `https://api.socialscrape.dev` | |
|
|
78
|
+
| `SOCIALSCRAPE_MCP_TRIM` | `1` | ask for `trim=true` (no null fields, no `extra`) unless a call says otherwise; saves context |
|
|
79
|
+
| `SOCIALSCRAPE_MCP_MAX_CHARS` | `100000` | longest answer; longer lists are cut to whole items, transcripts come in windows (`offset`) |
|
|
80
|
+
| `SOCIALSCRAPE_MCP_TIMEOUT` | `70` | seconds to wait for the API |
|
|
81
|
+
| `SOCIALSCRAPE_MCP_ALLOWED_ORIGINS` | any | HTTP mode only; comma list, set it to refuse browser calls from other origins |
|
|
82
|
+
| `SOCIALSCRAPE_PLATFORMS`, `SOCIALSCRAPE_TOOLSETS` | all | see above |
|
|
83
|
+
|
|
84
|
+
<!-- mcp-name: dev.socialscrape/socialscrape -->
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# socialscrape-mcp
|
|
2
|
+
|
|
3
|
+
The SocialScrape MCP server: social media data (profiles, posts, comments, search, ads,
|
|
4
|
+
transcripts) for Claude, Cursor and any other MCP client that starts a local server.
|
|
5
|
+
|
|
6
|
+
It is **generated from SocialScrape's endpoint registry** and grouped so an agent sees a usable number of tools instead of one per endpoint:
|
|
7
|
+
|
|
8
|
+
| Tools | What |
|
|
9
|
+
|---|---|
|
|
10
|
+
| `get_transcript`, `search`, `get_profile`, `get_post`, `get_comments` | The jobs agents do most, across platforms. The platform is an argument. |
|
|
11
|
+
| one per platform (`github`, `facebook`, `twitter`, ...) | `resource` picks the data (`user`, `profile.posts`, ...); parameters follow. |
|
|
12
|
+
| `describe` | Exact parameters, allowed values, price, example arguments. Free, no API call. |
|
|
13
|
+
| `call_endpoint`, `batch`, `get_job`, `monitors`, `get_credits` | Any endpoint by id, up to 100 requests in one call, async jobs, webhooks, balance. |
|
|
14
|
+
|
|
15
|
+
Only built endpoints appear as tools. A platform shows up in the next release after its endpoints are built.
|
|
16
|
+
|
|
17
|
+
Every result starts with `ok | credits charged: 1 | credits remaining: 4999` (and the structured
|
|
18
|
+
copy carries the numbers as fields). Failures are free and come back as `isError` with the API's
|
|
19
|
+
error code, a `retryable` flag and what to do next.
|
|
20
|
+
|
|
21
|
+
## Use it
|
|
22
|
+
|
|
23
|
+
The server runs on your own machine. Your MCP client (Claude Desktop, Claude Code, Cursor) starts it as a
|
|
24
|
+
subprocess over stdio. SocialScrape does not run a hosted MCP server, so there is no MCP URL to connect to.
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{ "mcpServers": { "socialscrape": {
|
|
28
|
+
"command": "uvx", "args": ["socialscrape-mcp"],
|
|
29
|
+
"env": { "SOCIALSCRAPE_API_KEY": "ss_live_..." } } } }
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Get a key at <https://socialscrape.dev/app>. Tool discovery works without a key; a tool call without one
|
|
33
|
+
explains how to add it.
|
|
34
|
+
|
|
35
|
+
**Fewer tools.** Some clients cap the number of tools (Cursor warns past 40). Narrow the list in the `env`
|
|
36
|
+
block:
|
|
37
|
+
|
|
38
|
+
| | Setting |
|
|
39
|
+
|---|---|
|
|
40
|
+
| only some platforms | `SOCIALSCRAPE_PLATFORMS=github,threads` |
|
|
41
|
+
| only the cross-platform and account tools | `SOCIALSCRAPE_TOOLSETS=core` |
|
|
42
|
+
| only the platform tools | `SOCIALSCRAPE_TOOLSETS=platforms` |
|
|
43
|
+
|
|
44
|
+
With `core` alone an agent still reaches every endpoint through `describe` and `call_endpoint`.
|
|
45
|
+
|
|
46
|
+
**Serve it over HTTP yourself.** For a client that can only reach a URL, install the extra and run the
|
|
47
|
+
server on a host you control: `pip install 'socialscrape-mcp[http]'`, then `socialscrape-mcp http --host
|
|
48
|
+
127.0.0.1 --port 8080`. Each request carries its own key in the `x-api-key` header (or
|
|
49
|
+
`Authorization: Bearer ...`), and `?platforms=` and `?toolsets=` narrow the tools. This is yours to run and
|
|
50
|
+
secure; SocialScrape does not offer it as a service.
|
|
51
|
+
|
|
52
|
+
## Settings (environment)
|
|
53
|
+
|
|
54
|
+
| Variable | Default | |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| `SOCIALSCRAPE_API_KEY` | none | stdio only; the HTTP mode reads each request's key |
|
|
57
|
+
| `SOCIALSCRAPE_API_URL` | `https://api.socialscrape.dev` | |
|
|
58
|
+
| `SOCIALSCRAPE_MCP_TRIM` | `1` | ask for `trim=true` (no null fields, no `extra`) unless a call says otherwise; saves context |
|
|
59
|
+
| `SOCIALSCRAPE_MCP_MAX_CHARS` | `100000` | longest answer; longer lists are cut to whole items, transcripts come in windows (`offset`) |
|
|
60
|
+
| `SOCIALSCRAPE_MCP_TIMEOUT` | `70` | seconds to wait for the API |
|
|
61
|
+
| `SOCIALSCRAPE_MCP_ALLOWED_ORIGINS` | any | HTTP mode only; comma list, set it to refuse browser calls from other origins |
|
|
62
|
+
| `SOCIALSCRAPE_PLATFORMS`, `SOCIALSCRAPE_TOOLSETS` | all | see above |
|
|
63
|
+
|
|
64
|
+
<!-- mcp-name: dev.socialscrape/socialscrape -->
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "socialscrape-mcp"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "MCP server for SocialScrape: social media data for Claude, Cursor and other agents"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
license-files = ["LICENSE"]
|
|
12
|
+
requires-python = ">=3.10"
|
|
13
|
+
dependencies = ["httpx>=0.27,<1"]
|
|
14
|
+
|
|
15
|
+
[project.optional-dependencies]
|
|
16
|
+
# The hosted (streamable HTTP) server. stdio needs only httpx.
|
|
17
|
+
http = ["starlette>=0.40", "uvicorn>=0.30"]
|
|
18
|
+
test = ["pytest>=8", "starlette>=0.40", "uvicorn>=0.30"]
|
|
19
|
+
|
|
20
|
+
[project.urls]
|
|
21
|
+
Homepage = "https://socialscrape.dev"
|
|
22
|
+
Documentation = "https://socialscrape.dev/docs"
|
|
23
|
+
|
|
24
|
+
[project.scripts]
|
|
25
|
+
socialscrape-mcp = "socialscrape_mcp.cli:main"
|
|
26
|
+
|
|
27
|
+
[tool.setuptools]
|
|
28
|
+
packages = ["socialscrape_mcp"]
|
|
29
|
+
|
|
30
|
+
[tool.setuptools.package-data]
|
|
31
|
+
socialscrape_mcp = ["catalog.json"]
|