Not in the top 1,000 by GitHub stars
grepsr/pline-api
MCP server and agent skill for the pline.ai API: scrape, crawl, batch-scrape, map, and search the web from Claude, Cursor, Codex, and any MCP client.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
plugin/skills/pline-api/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
144034ded4d0 → 144034ded4d0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 144034ded4d0
No earlier version was observed for comparison.
skills/pline-api/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
144034ded4d0 → 144034ded4d0
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 144034ded4d0
No earlier version was observed for comparison.
Verified commit 144034ded4d0abf7290f01b75874cbc970c0447a
git clone --filter=blob:none --no-checkout https://github.com/grepsr/pline-api.git .hotskills/grepsr-pline-api && git -C .hotskills/grepsr-pline-api checkout --detach 144034ded4d0abf7290f01b75874cbc970c0447a
# Copy each selected skill directory from .hotskills/grepsr-pline-api into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/grepsr/pline-api.git .hotskills/grepsr-pline-api && git -C .hotskills/grepsr-pline-api checkout --detach 144034ded4d0abf7290f01b75874cbc970c0447a
# Copy each selected skill directory from .hotskills/grepsr-pline-api into .cursor/skills/<skill-name>/Heat
1.7- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
pline-api
When your agent uses it
Use when fetching web pages, extracting HTML, Markdown, screenshots or structured JSON, scraping URL lists, crawling sites, discovering URLs, or searching through the pline.ai API.
What it loads into context
Frontmatter
43 tokensAlways available to the agent
SKILL.md
590 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Choose the operation
- Fetching and sessions
- Background jobs and results
Files
../../../.claude-plugin/marketplace.jsonasset636 bytes../../.claude-plugin/plugin.jsonasset1,020 bytes../../assets/icon.pngasset8,685 bytesSKILL.mdcore2,548 bytesagents/openai.yamlasset204 bytes
Read SKILL.md
# pline.ai API
Use the pline.ai MCP tools that ship with this plugin. The user signs in to pline.ai when the server
first connects and chooses the workspace it uses; there is nothing to configure here and nothing to
ask the user for. If the tools are not connected, ask the user to connect the pline.ai server
(for example with `/mcp` in Claude Code) rather than calling the API another way.
The server documents itself: read the `pline://guide` resource for usage guidance and
`pline://reference` for every field, output format, action, and constraint.
## Choose the operation
| Need | MCP tool |
|---|---|View the complete source on GitHubpline-api
When your agent uses it
Use when fetching web pages, extracting HTML, Markdown, screenshots or structured JSON, scraping URL lists, crawling sites, discovering URLs, or searching through the pline.ai API.
What it loads into context
Frontmatter
43 tokensAlways available to the agent
SKILL.md
842 tokensWhen the skill is activated
Reference documents
4,082 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Configuration and paths
- Choose the operation
- Fetching and sessions
- Background jobs and results
Scripts executed separately
scripts/pline.py
Files
SKILL.mdcore3,570 bytesSKILL.mdcore3,570 bytesSKILL.mdcore3,570 bytesagents/openai.yamlasset204 bytesreferences/endpoints.mddoc14,529 bytesscripts/pline.pyruns30,283 bytes
Read SKILL.md
# pline.ai API
Use the connected pline.ai MCP tools when available. Otherwise use the bundled Python client;
it needs Python 3.10+ and only the standard library.
## Configuration and paths
The client requires `PLINE_API_KEY` in its environment. It calls the public API at
`https://apix.pline.ai/v1` unless `PLINE_BASE_URL` overrides it.
If the key is missing, ask the user to set it locally (or run `npx -y pline-api@latest init`); do not
ask them to paste the key into chat. Never put the key in a URL, output, or committed file. Do not
point `PLINE_BASE_URL` at any other host unless the user configured it.
Resolve `SKILL_DIR` to the **absolute directory containing this loaded SKILL.md**, wherever theView the complete source on GitHubSkills included
- pline-api
- pline-api
Repository facts
- License
- MIT
- Created
- Sep 17, 2026
- Last pushed
- Nov 4, 2026
- Forks
- 0
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 7, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 2 notes
skills/pline-api/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/pline-api/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 43 network referencesin 4 files: plugin/.claude-plugin/plugin.json:8 pline-api/scripts/pline.py:7 pline-api/references/endpoints.md:3 and 1 more
- No hidden or obfuscated text
- No instruction overrides
- 1 executable scriptin 1 file: pline-api/scripts/pline.py:1
- 11 references to secretsin 3 files: pline-api/scripts/pline.py:8 pline-api/references/endpoints.md:4 pline-api/SKILL.md:13
- No requests to vote in Hot
Show all 55 signals by file
plugin/.claude-plugin/plugin.json
- Network accessline 8
"name": "Grepsr", "email": "dev@grepsr.com", "url": "https://github.com/grepsr" - Network accessline 9
"email": "dev@grepsr.com", "url": "https://github.com/grepsr" }, - Network accessline 10
"url": "https://github.com/grepsr" - Network accessline 11
}, "homepage": "https://pline.ai", "repository": "https://github.com/grepsr/pline-api", - Network accessline 12
"homepage": "https://pline.ai", - Network accessline 13
"repository": "https://github.com/grepsr/pline-api", - Network accessline 14
"license": "MIT", "documentationUrl": "https://github.com/grepsr/pline-api#readme", "supportUrl": "https://github.com/grepsr/pline-api/issues", - Network accessline 15
"documentationUrl": "https://github.com/grepsr/pline-api#readme", - Network accessline 16
"supportUrl": "https://github.com/grepsr/pline-api/issues", - Network accessline 17
"privacyPolicyUrl": "https://www.pline.ai/privacy-policy", - Network accessline 18
"termsOfServiceUrl": "https://www.pline.ai/terms-of-service", - Network accessline 28
"pline.ai": { "type": "http", "url": "https://mcp.pline.ai/mcp" - Network accessline 29
"type": "http", "url": "https://mcp.pline.ai/mcp" } - Network accessline 30
"url": "https://mcp.pline.ai/mcp"
skills/pline-api/SKILL.md
- Network accessline 13
[Credential-related source omitted] - Access to secretsline 13
[Credential-related source omitted] - Network accessline 14
`https://apix.pline.ai/v1` unless `PLINE_BASE_URL` overrides it. - Network accessline 25
python3 "$SKILL_DIR/scripts/pline.py" --help python3 "$SKILL_DIR/scripts/pline.py" scrape --url https://example.com/pricing \ - Network accessline 26
python3 "$SKILL_DIR/scripts/pline.py" scrape --url https://example.com/pricing \
skills/pline-api/references/endpoints.md
- Network accessline 3
[Credential-related source omitted] - Network accessline 4
[Credential-related source omitted] - Access to secretsline 4
[Credential-related source omitted] - Network accessline 109
"session_id": "my-session-abc123", "effective_geolocation": {"country": "US", "city": "New York"}, "final_url": "https://example.com/pricing", - Network accessline 110
"effective_geolocation": {"country": "US", "city": "New York"}, "final_url": "https://example.com/pricing", "site_tier": "standard", - Network accessline 111
"final_url": "https://example.com/pricing", - Network accessline 133
[Credential-related source omitted] - Access to secretsline 133
[Credential-related source omitted] - Access to secretsline 134
[Credential-related source omitted] - Network accessline 135
-d '{"url":"https://example.com/pricing","output":["markdown"],"only_main_content":true}' - Network accessline 243
{"index": 0, "url": "https://example.com/a", "success": true, "status": 200, - Network accessline 244
"finalUrl": "https://example.com/a", "output": "# A\n...", "error": null} - Network accessline 268
{"success": true, "links": [{"url": "https://example.com/deals", "type": "product-list", - Network accessline 269
"links": [{"url": "https://example.com/deals", "type": "product-list", - Network accessline 299
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted]
skills/pline-api/scripts/pline.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 7
Configuration comes from the environment: PLINE_API_KEY sent as the x-api-key header (required) PLINE_BASE_URL API base URL (optional, default https://apix.pline.ai/v1) - Network accessline 8
[Credential-related source omitted] - Access to secretsline 8
[Credential-related source omitted] - Network accessline 9
PLINE_BASE_URL API base URL (optional, default https://apix.pline.ai/v1) - Network accessline 19
import urllib.error import urllib.parse import http.client - Network accessline 20
import urllib.parse import http.client import urllib.request - Network accessline 21
import http.client import urllib.request import uuid - Network accessline 102
DEFAULT_BASE_URL = "https://apix.pline.ai/v1" - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 132
[Credential-related source omitted] - Access to secretsline 133
[Credential-related source omitted] - Access to secretsline 135
[Credential-related source omitted] - Access to secretsline 159
[Credential-related source omitted] - Network accessline 162
data = json.dumps(body).encode() request_headers["content-type"] = "application/json" request = urllib.request.Request( - Network accessline 163
request_headers["content-type"] = "application/json" request = urllib.request.Request( url, data=data, headers=request_headers, method=method - Network accessline 164
request = urllib.request.Request( - Network accessline 455
path = os.path.join(directory, name) with ( urllib.request.urlopen(url, timeout=600) as response, - Network accessline 456
with ( urllib.request.urlopen(url, timeout=600) as response, open(path, "wb") as handle, - Network accessline 457
urllib.request.urlopen(url, timeout=600) as response,
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 41 facts
- Network access in prose of the SKILL.mdpline-api/SKILL.md:13Low confidence
- Access to secrets in prose of the SKILL.mdpline-api/SKILL.md:13Low confidence
- Network access in prose of the SKILL.mdpline-api/SKILL.md:14Low confidence
- Network access in code of the SKILL.mdpline-api/SKILL.md:25High confidence
- Network access in code of the SKILL.mdpline-api/SKILL.md:26High confidence
- Network access in prose of documentationpline-api/references/endpoints.md:3Low confidence
- Network access in prose of documentationpline-api/references/endpoints.md:4Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valuepline-api/references/endpoints.md:4Low confidence
- Network access in code of documentationpline-api/references/endpoints.md:109Low confidence
- Network access in code of documentationpline-api/references/endpoints.md:110Low confidence
- Network access in code of documentationpline-api/references/endpoints.md:111Low confidence
- Network access in code of documentationpline-api/references/endpoints.md:133Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valuepline-api/references/endpoints.md:133Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valuepline-api/references/endpoints.md:134Low confidence
- Network access in code of documentationpline-api/references/endpoints.md:135Low confidence
- Network access in code of documentationpline-api/references/endpoints.md:243Low confidence
- Network access in code of documentationpline-api/references/endpoints.md:244Low confidence
- Network access in code of documentationpline-api/references/endpoints.md:268Low confidence
- Network access in code of documentationpline-api/references/endpoints.md:269Low confidence
- Network access in code of documentationpline-api/references/endpoints.md:299Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valuepline-api/references/endpoints.md:299Low confidence
- Executable script in code of a file that runspline-api/scripts/pline.py:1High confidence
- Network access in prose of a file that runspline-api/scripts/pline.py:7Low confidence
- Network access in prose of a file that runspline-api/scripts/pline.py:8Low confidence
- Access to secrets in prose of a file that runs: a variable, placeholder or call, not a stored valuepline-api/scripts/pline.py:8Low confidence
- Network access in prose of a file that runspline-api/scripts/pline.py:9Low confidence
- Network access in code of a file that runspline-api/scripts/pline.py:19High confidence
- Network access in code of a file that runspline-api/scripts/pline.py:20High confidence
- Network access in code of a file that runspline-api/scripts/pline.py:21High confidence
- Network access in code of a file that runspline-api/scripts/pline.py:102High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuepline-api/scripts/pline.py:106Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuepline-api/scripts/pline.py:132Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuepline-api/scripts/pline.py:133Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuepline-api/scripts/pline.py:135Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuepline-api/scripts/pline.py:159Low confidence
- Network access in code of a file that runspline-api/scripts/pline.py:162High confidence
- Network access in code of a file that runspline-api/scripts/pline.py:163High confidence
- Network access in code of a file that runspline-api/scripts/pline.py:164High confidence
- Network access in code of a file that runspline-api/scripts/pline.py:455High confidence
- Network access in code of a file that runspline-api/scripts/pline.py:456High confidence
- Network access in code of a file that runspline-api/scripts/pline.py:457High confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md plugin/skills/pline-api/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Native | Path .cursor/mcp.json | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md plugin/skills/pline-api/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md plugin/skills/pline-api/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md plugin/skills/pline-api/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.