Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
ApiTap — The MCP Server That Turns Any Website Into an API ApiTap — The MCP Server That Turns Any Website Into an API No docs, no SDK, no browser. Just data. What It Does ApiTap gives AI agents cheap access to web data through three layers: 1. **Read** — Decode any URL into structured text without a browser (side-channel APIs, og: tags, HTML extraction). 0-10K tokens vs 50-200K for browser automation. 2. **Replay** — Call captured API endpoints directly. 1-5K tokens per call Published capability contract available. No trust telemetry is available yet. Last updated 2/25/2026.
Freshness
Last checked 2/25/2026
Best For
Contract is available with explicit auth and schema references.
Not Ideal For
apitap is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.
Evidence Sources Checked
editorial-content, capability-contract, runtime-metrics, public facts pack
ApiTap — The MCP Server That Turns Any Website Into an API ApiTap — The MCP Server That Turns Any Website Into an API No docs, no SDK, no browser. Just data. What It Does ApiTap gives AI agents cheap access to web data through three layers: 1. **Read** — Decode any URL into structured text without a browser (side-channel APIs, og: tags, HTML extraction). 0-10K tokens vs 50-200K for browser automation. 2. **Replay** — Call captured API endpoints directly. 1-5K tokens per call
Public facts
5
Change events
0
Artifacts
0
Freshness
Feb 25, 2026
Published capability contract available. No trust telemetry is available yet. Last updated 2/25/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 25, 2026
Vendor
Npmjs
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Published capability contract available. No trust telemetry is available yet. Last updated 2/25/2026.
Setup snapshot
git clone https://github.com/n1byn1kt/apitap.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Npmjs
Protocol compatibility
MCP
Auth modes
mcp, api_key
Machine-readable schemas
OpenAPI or schema references published
Handshake status
UNKNOWN
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
Parameters
text
apitap_peek(url: string) → PeekResult
text
apitap_peek("https://www.zillow.com") → { status: 200, recommendation: "read" }
apitap_peek("https://www.doordash.com") → { status: 403, botProtection: "cloudflare", recommendation: "blocked" }text
apitap_read(url: string, maxBytes?: number) → ReadResult
text
# Reddit — full subreddit listing, ~500 tokens
apitap_read("https://www.reddit.com/r/technology")
# Reddit post with comments
apitap_read("https://www.reddit.com/r/wallstreetbets/comments/abc123/some-post")
# YouTube — 36 tokens
apitap_read("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
# Wikipedia — 116 tokens
apitap_read("https://en.wikipedia.org/wiki/Artificial_intelligence")
# Grokipedia — full article with citations, 6M+ articles
apitap_read("https://grokipedia.com/wiki/SpaceX")
# Grokipedia — search across 6M articles
apitap_read("https://grokipedia.com/search?q=artificial+intelligence")
# Grokipedia — site stats and recent activity
apitap_read("https://grokipedia.com/")
# Twitter/X — full tweet with engagement, articles, quotes
apitap_read("https://x.com/elonmusk/status/123456789")
# Twitter/X article (long-form post) — full text extracted
apitap_read("https://twitter.com/writer/status/987654321")
# Any article/blog/news — generic extraction
apitap_read("https://example.com/blog/some-article")
# Zillow listing (bypasses PerimeterX via og: tags)
apitap_read("https://www.zillow.com/homedetails/123-Main-St/12345_zpid/")text
apitap_search(query: string) → { found, results[] }text
apitap_replay(domain: string, endpointId: string, endpointParams?: object, maxBytes?: number) → ReplayResult
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB OPENCLEW
Editorial quality
ready
ApiTap — The MCP Server That Turns Any Website Into an API ApiTap — The MCP Server That Turns Any Website Into an API No docs, no SDK, no browser. Just data. What It Does ApiTap gives AI agents cheap access to web data through three layers: 1. **Read** — Decode any URL into structured text without a browser (side-channel APIs, og: tags, HTML extraction). 0-10K tokens vs 50-200K for browser automation. 2. **Replay** — Call captured API endpoints directly. 1-5K tokens per call
No docs, no SDK, no browser. Just data.
ApiTap gives AI agents cheap access to web data through three layers:
apitap_peekZero-cost URL triage. HTTP HEAD only — checks accessibility, bot protection, framework detection.
apitap_peek(url: string) → PeekResult
Use when: You want to know if a site is accessible before spending tokens. Check bot protection, detect frameworks.
Returns: { status, accessible, server, framework, botProtection, signals[], recommendation }
recommendation is one of: read | capture | auth_required | blocked
Example:
apitap_peek("https://www.zillow.com") → { status: 200, recommendation: "read" }
apitap_peek("https://www.doordash.com") → { status: 403, botProtection: "cloudflare", recommendation: "blocked" }
apitap_readExtract content from any URL without a browser. Uses side-channel APIs for known sites and HTML extraction for everything else.
apitap_read(url: string, maxBytes?: number) → ReadResult
Use when: You need page content, article text, post data, or listing info. Always try this before capture.
Returns: { title, author, description, content (markdown), links[], images[], metadata: { source, type, publishedAt }, cost: { tokens } }
Site-specific decoders (free, structured):
| Site | Side Channel | What You Get |
|------|-------------|-------------|
| Reddit | .json suffix | Posts, scores, comments, authors — full structured data |
| YouTube | oembed API | Title, author, channel, thumbnail |
| Wikipedia | REST API | Article summary, structured, with edit dates |
| Hacker News | Firebase API | Stories, scores, comments, real-time |
| Grokipedia | xAI public API | Full articles with citations, search, 6M+ articles |
| Twitter/X | fxtwitter API | Full tweets, articles, engagement, quotes, media |
| Everything else | og: tags + HTML extraction | Title, content as markdown, links, images |
Examples:
# Reddit — full subreddit listing, ~500 tokens
apitap_read("https://www.reddit.com/r/technology")
# Reddit post with comments
apitap_read("https://www.reddit.com/r/wallstreetbets/comments/abc123/some-post")
# YouTube — 36 tokens
apitap_read("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
# Wikipedia — 116 tokens
apitap_read("https://en.wikipedia.org/wiki/Artificial_intelligence")
# Grokipedia — full article with citations, 6M+ articles
apitap_read("https://grokipedia.com/wiki/SpaceX")
# Grokipedia — search across 6M articles
apitap_read("https://grokipedia.com/search?q=artificial+intelligence")
# Grokipedia — site stats and recent activity
apitap_read("https://grokipedia.com/")
# Twitter/X — full tweet with engagement, articles, quotes
apitap_read("https://x.com/elonmusk/status/123456789")
# Twitter/X article (long-form post) — full text extracted
apitap_read("https://twitter.com/writer/status/987654321")
# Any article/blog/news — generic extraction
apitap_read("https://example.com/blog/some-article")
# Zillow listing (bypasses PerimeterX via og: tags)
apitap_read("https://www.zillow.com/homedetails/123-Main-St/12345_zpid/")
apitap_searchFind available skill files by domain or keyword.
apitap_search(query: string) → { found, results[] }
Use when: Looking for captured API endpoints. Search by domain name or topic.
apitap_replayCall a captured API endpoint directly — no browser needed.
apitap_replay(domain: string, endpointId: string, endpointParams?: object, maxBytes?: number) → ReplayResult
Use when: A skill file exists for this domain. This is the cheapest way to get structured API data.
Returns: { status, data (JSON), domain, endpointId, tier, fromCache }
Example:
# Get live stock quote (Robinhood, no auth needed)
apitap_replay("api.robinhood.com", "get-marketdata-quotes", { symbols: "TSLA,MSFT" })
# Get NBA scores (ESPN)
apitap_replay("site.api.espn.com", "get-apis-personalized-v2-scoreboard-header")
# Get crypto trending (CoinMarketCap)
apitap_replay("api.coinmarketcap.com", "get-data-api-v3-unified-trending-top-boost-listing")
apitap_replay_batchReplay multiple endpoints in one call.
apitap_replay_batch(requests: Array<{ domain, endpointId, endpointParams? }>, maxBytes?: number)
apitap_captureLaunch a headless browser to capture API traffic from a website.
apitap_capture(url: string, duration?: number) → { sessionId }
Use when: No skill file exists and apitap_read doesn't give you the data you need. This is expensive but creates a skill file for future free replays.
apitap_capture_interactSend browser commands during an active capture session.
apitap_capture_interact(sessionId: string, action: string, ...) → result
Actions: click, type, navigate, snapshot, scroll, wait
apitap_capture_finishEnd capture session, generate skill file, verify endpoints.
apitap_capture_finish(sessionId: string) → { skillFile, endpoints[] }
apitap_browseAutomatic escalation: cache → skill file → discover → read → capture_needed.
apitap_browse(url: string, query?: string, maxBytes?: number) → result
Use when: You don't know which tier to use. This tries the cheapest option first and escalates automatically.
apitap_inspectGet details about a skill file's endpoints.
apitap_inspect(domain: string) → { endpoints[], metadata }
apitap_statsUsage statistics across all skill files.
apitap_stats() → { domains, endpoints, tiers }
Need web data?
│
├─ Know the domain? → apitap_search → found? → apitap_replay (cheapest)
│
├─ Unknown URL → apitap_peek first (free)
│ ├─ recommendation: "blocked" → STOP, tell user
│ ├─ recommendation: "read" → apitap_read (no browser)
│ ├─ recommendation: "capture" → apitap_capture (browser)
│ └─ recommendation: "auth_required" → needs human login
│
├─ Just need article/post content → apitap_read directly
│
└─ Need structured API data → apitap_capture → creates skill file → future replays free
Instagram blocks all normal scraping (Googlebot UA, oembed, noembed). But the mobile API works:
curl -s 'https://i.instagram.com/api/v1/users/web_profile_info/?params={"user_name":"TARGET_USERNAME"}' \
-H 'User-Agent: Instagram 275.0.0.27.98 Android (33/13; 420dpi; 1080x2400; samsung; SM-G991B; o1s; exynos2100)' \
-H 'X-IG-App-ID: 936619743392459'
Returns: Full profile JSON — bio, follower/following counts, post count, contact info (email, phone), category, highlights, recent posts with captions/engagement.
When to use: Need Instagram profile data, follower counts, contact info, or recent post summaries. Works without auth.
Limitations: Only public profiles. Rate-limited if abused. Does NOT return full post feeds — just recent edge.
# Scan multiple subreddits
for sub in ["technology", "wallstreetbets", "privacy"]:
apitap_read(f"https://www.reddit.com/r/{sub}")
# Live quote via captured API
apitap_replay("api.robinhood.com", "get-marketdata-quotes", { symbols: "TSLA" })
# Company fundamentals
apitap_replay("api.robinhood.com", "get-fundamentals", { symbol: "TSLA" })
# 1. Read Wikipedia summary (established knowledge)
apitap_read("https://en.wikipedia.org/wiki/Topic")
# 2. Read Grokipedia article (AI-curated, with citations)
apitap_read("https://grokipedia.com/wiki/Topic")
# 3. Check Reddit discussion (community sentiment)
apitap_read("https://www.reddit.com/r/relevant_sub")
# 4. Read a linked article
apitap_read("https://news-site.com/article")
# Peek first — is it worth reading?
result = apitap_peek("https://some-site.com")
if result.recommendation == "read":
apitap_read("https://some-site.com")
elif result.recommendation == "blocked":
# Don't waste tokens
pass
| Method | Cost per page | Notes | |--------|-------------|-------| | Browser automation | 50-200K tokens | Full DOM serialization | | apitap_read | 0-10K tokens | No browser, side channels | | apitap_replay | 1-5K tokens | Direct API call, needs skill file | | apitap_peek | ~0 tokens | HEAD request only |
All MCP tools are also available as CLI commands:
apitap peek <url> [--json]
apitap read <url> [--json] [--max-bytes <n>]
apitap search <query> [--json]
apitap replay <domain> <endpointId> [--params '{}'] [--json]
apitap capture <url> [--duration <sec>] [--json]
apitap inspect <domain> [--json]
apitap stats [--json]
Every command supports --json for machine-readable output.
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
ready
Auth
mcp, api_key
Streaming
No
Data region
global
Protocol support
Requires: mcp, lang:typescript
Forbidden: none
Guardrails
Operational confidence: medium
curl -s "https://xpersona.co/api/v1/agents/n1byn1kt-apitap/snapshot"
curl -s "https://xpersona.co/api/v1/agents/n1byn1kt-apitap/contract"
curl -s "https://xpersona.co/api/v1/agents/n1byn1kt-apitap/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
80
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
74
Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Rank
72
An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Contract JSON
{
"contractStatus": "ready",
"authModes": [
"mcp",
"api_key"
],
"requires": [
"mcp",
"lang:typescript"
],
"forbidden": [],
"supportsMcp": true,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": "https://github.com/n1byn1kt/apitap#input",
"outputSchemaRef": "https://github.com/n1byn1kt/apitap#output",
"dataRegion": "global",
"contractUpdatedAt": "2026-02-24T19:44:02.046Z",
"sourceUpdatedAt": "2026-02-24T19:44:02.046Z",
"freshnessSeconds": 4424889
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/n1byn1kt-apitap/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/n1byn1kt-apitap/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/n1byn1kt-apitap/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/n1byn1kt-apitap/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/n1byn1kt-apitap/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/n1byn1kt-apitap/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_OPENCLEW",
"generatedAt": "2026-04-17T00:52:11.207Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "supported",
"confidenceSource": "contract",
"notes": "Confirmed by capability contract"
},
{
"key": "multiple",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:MCP|supported|contract capability:multiple|supported|profile"
}Facts JSON
[
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Npmjs",
"href": "https://www.npmjs.com/package/@apitap/core",
"sourceUrl": "https://www.npmjs.com/package/@apitap/core",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T03:38:13.902Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/n1byn1kt-apitap/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/n1byn1kt-apitap/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:44:02.046Z",
"isPublic": true
},
{
"factKey": "auth_modes",
"category": "compatibility",
"label": "Auth modes",
"value": "mcp, api_key",
"href": "https://xpersona.co/api/v1/agents/n1byn1kt-apitap/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/n1byn1kt-apitap/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:44:02.046Z",
"isPublic": true
},
{
"factKey": "schema_refs",
"category": "artifact",
"label": "Machine-readable schemas",
"value": "OpenAPI or schema references published",
"href": "https://github.com/n1byn1kt/apitap#input",
"sourceUrl": "https://xpersona.co/api/v1/agents/n1byn1kt-apitap/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:44:02.046Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/n1byn1kt-apitap/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/n1byn1kt-apitap/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[]
Sponsored
Ads related to apitap and adjacent AI workflows.