Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion graphify-out/.graphify_labels.json
Original file line number Diff line number Diff line change
Expand Up @@ -209,5 +209,10 @@
"207": "Community 207",
"208": "Community 208",
"209": "Community 209",
"210": "Community 210"
"210": "Community 210",
"211": "Community 211",
"212": "Community 212",
"213": "Community 213",
"214": "Community 214",
"215": "Community 215"
}
139 changes: 84 additions & 55 deletions graphify-out/GRAPH_REPORT.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# Graph Report - webmcp-anything (2026-06-04)

## Corpus Check
- 279 files · ~615,850 words
- 289 files · ~624,202 words
- Verdict: corpus is large enough that graph structure adds value.

## Summary
- 1918 nodes · 2789 edges · 211 communities (192 shown, 19 thin omitted)
- Extraction: 99% EXTRACTED · 1% INFERRED · 0% AMBIGUOUS · INFERRED: 26 edges (avg confidence: 0.59)
- 1972 nodes · 2892 edges · 216 communities (198 shown, 18 thin omitted)
- Extraction: 99% EXTRACTED · 1% INFERRED · 0% AMBIGUOUS · INFERRED: 27 edges (avg confidence: 0.6)
- Token cost: 0 input · 0 output

## Graph Freshness
- Built from commit: `72c04024`
- Built from commit: `9bc1cb89`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).

Expand Down Expand Up @@ -137,18 +137,23 @@
- [[_COMMUNITY_Community 208|Community 208]]
- [[_COMMUNITY_Community 209|Community 209]]
- [[_COMMUNITY_Community 210|Community 210]]
- [[_COMMUNITY_Community 211|Community 211]]
- [[_COMMUNITY_Community 212|Community 212]]
- [[_COMMUNITY_Community 213|Community 213]]
- [[_COMMUNITY_Community 214|Community 214]]
- [[_COMMUNITY_Community 215|Community 215]]

## God Nodes (most connected - your core abstractions)
1. `Per-page guidance (what each page is actually about)` - 26 edges
2. `Tool` - 22 edges
3. `WmcpClient` - 20 edges
4. `integrationPageHtml()` - 20 edges
5. `scoreMcpServer()` - 19 edges
6. `recordGrade()` - 19 edges
7. `resolveAuth()` - 18 edges
8. `stripeWebhook()` - 17 edges
9. `uiCss()` - 17 edges
10. `uiNav()` - 17 edges
3. `uiCss()` - 21 edges
4. `uiNav()` - 21 edges
5. `WmcpClient` - 20 edges
6. `integrationPageHtml()` - 20 edges
7. `scoreMcpServer()` - 19 edges
8. `recordGrade()` - 19 edges
9. `resolveAuth()` - 18 edges
10. `stripeWebhook()` - 17 edges

## Surprising Connections (you probably didn't know these)
- `mcpIndexHtml()` --calls--> `esc()` [INFERRED]
Expand All @@ -157,15 +162,15 @@
sdks/python/wmcp/anthropic.py → sdks/python/wmcp/client.py
- `Tool` --uses--> `Tool` [INFERRED]
sdks/python/wmcp/openai.py → sdks/python/wmcp/client.py
- `providerStart()` --calls--> `anthropicStart()` [INFERRED]
worker/src/provider_routes.ts → worker/src/anthropic_oauth.ts
- `connectHubHtml()` --calls--> `esc()` [INFERRED]
worker/src/connect_hub.ts → worker/src/drops_seo.ts
- `gradePageHtml()` --calls--> `esc()` [INFERRED]
worker/src/mcp_grade.ts → worker/src/drops_seo.ts

## Import Cycles
- None detected.

## Communities (211 total, 19 thin omitted)
## Communities (216 total, 18 thin omitted)

### Community 0 - "Community 0"
Cohesion: 0.05
Expand All @@ -188,8 +193,8 @@ Cohesion: 0.08
Nodes (47): arr(), buildTools(), classify(), clip(), collectVariants(), detect(), detect2(), eventOffers() (+39 more)

### Community 5 - "Community 5"
Cohesion: 0.21
Nodes (19): regradeWatched(), seedRegistryGrades(), cacheKey(), DEFAULT_STORES, Env, gradeManualSeed(), normalizeUrl(), pickStores() (+11 more)
Cohesion: 0.20
Nodes (9): Cold email (general), Full target list (32 commercial F-graders, finance → dev → other), 🔥 Hot leads (real findings, ready to send), Mirror play — the A-graded (sell Verified, easy yes), Outreach templates, Payments / finance angle (agentrapay, crossfin, payram, payperbyte, merx), Security-vendor angle (viridis-security), Trust-Grade Outbound — the money engine (+1 more)

### Community 6 - "Community 6"
Cohesion: 0.17
Expand Down Expand Up @@ -244,8 +249,8 @@ Cohesion: 0.24
Nodes (16): clean_and_normalize(), harvest_pulsemcp_secondary(), harvest_registry(), http_get(), http_post_json(), main(), Any, float (+8 more)

### Community 19 - "Community 19"
Cohesion: 0.20
Nodes (18): AgentControl, AUDIT(), AuditEntry, checkAgentAllowed(), CTL(), Env, getControl(), getUsage() (+10 more)
Cohesion: 0.21
Nodes (17): AgentControl, AUDIT(), AuditEntry, checkAgentAllowed(), CTL(), Env, getControl(), getUsage() (+9 more)

### Community 20 - "Community 20"
Cohesion: 0.17
Expand All @@ -260,8 +265,8 @@ Cohesion: 0.12
Nodes (16): 1/4 — the hook, 1/ — the hook, 2/4 — the insight, 2/ — the config, 3/4 — the network effect, 3/ — how it works (5-tier), 4/4 — the ask, 4/ — compose + toolsets (+8 more)

### Community 24 - "Community 24"
Cohesion: 0.19
Nodes (16): consume(), EngineEnv, buildToolIndex(), handleOne(), hostToken(), McpCtx, McpEnv, mcpHandler() (+8 more)
Cohesion: 0.20
Nodes (15): EngineEnv, buildToolIndex(), handleOne(), hostToken(), McpCtx, McpEnv, mcpHandler(), rpcError() (+7 more)

### Community 25 - "Community 25"
Cohesion: 0.12
Expand Down Expand Up @@ -301,11 +306,11 @@ Nodes (12): 30-second quickstart, Connect any URL to your MCP client (the flagsh

### Community 34 - "Community 34"
Cohesion: 0.29
Nodes (13): resolveAuth(), b64urlDecode(), b64urlEncode(), claimStart(), claimVerify(), ctEqual(), Env, extractVerifyTokens() (+5 more)
Nodes (12): b64urlDecode(), b64urlEncode(), claimStart(), claimVerify(), ctEqual(), Env, extractVerifyTokens(), fetchHtml() (+4 more)

### Community 35 - "Community 35"
Cohesion: 0.18
Nodes (11): adSlot(), CAT_LABEL, connectHubHtml(), CATEGORY_NAMES, base64urlEncode(), bridgeDescriptor(), slim(), SlimTool (+3 more)
Cohesion: 0.25
Nodes (8): adSlot(), base64urlEncode(), bridgeDescriptor(), slim(), SlimTool, webmcpHubHtml(), webmcpShimJs(), tools

### Community 36 - "Community 36"
Cohesion: 0.27
Expand Down Expand Up @@ -456,8 +461,8 @@ Cohesion: 0.22
Nodes (8): 1) dev.to — BEST fit (republish w/ canonical), 2) Hashnode / Medium — same republish, 3) Reddit — share, value-first (follow each sub's self-promo rule), 4) X / Twitter — thread (@alexishearts), 5) HN — DON'T submit this post here, 6) Republish body (paste into dev.to / Medium / Hashnode), Distribution pack — "WebMCP & Me" (alexishearts persona), ⚠ Persona-opsec rules (read once)

### Community 73 - "Community 73"
Cohesion: 0.13
Nodes (16): AFFILIATE, affiliateButtons(), AffiliateNet, ebayUrl(), esc(), rawAndPsa(), Article, ARTICLE_SLUGS (+8 more)
Cohesion: 0.14
Nodes (15): AFFILIATE, affiliateButtons(), AffiliateNet, ebayUrl(), esc(), rawAndPsa(), Article, ArticleFaq (+7 more)

### Community 74 - "Community 74"
Cohesion: 0.40
Expand All @@ -481,7 +486,7 @@ Nodes (4): badgeHandler(), Env, PILL_INDEXED(), PILL_VERIFIED()

### Community 80 - "Community 80"
Cohesion: 0.10
Nodes (23): blockedTargetReason(), callMcp(), CATEGORIES, DriftOutcome, Env, finalizeSseLimited(), Finding, GRADE_COLOR (+15 more)
Nodes (22): blockedTargetReason(), callMcp(), CATEGORIES, composite(), DriftOutcome, Env, finalizeSseLimited(), Finding (+14 more)

### Community 81 - "Community 81"
Cohesion: 0.60
Expand All @@ -492,8 +497,8 @@ Cohesion: 0.47
Nodes (4): activateQc(), DEFAULTS, load(), showQc()

### Community 144 - "Community 144"
Cohesion: 0.06
Nodes (60): anthropicExchange(), anthropicStart(), bytesToBase64Url(), Env, generatePkce(), randomState(), requireUser(), b64url() (+52 more)
Cohesion: 0.15
Nodes (24): b64url(), ensureMcpClient(), Env, exchangePkceCode(), generatePkceVerifier(), McpClientRecord, pkceChallengeS256(), TokenResponse (+16 more)

### Community 174 - "Community 174"
Cohesion: 0.22
Expand All @@ -512,20 +517,20 @@ Cohesion: 0.24
Nodes (9): BestLoc, BESTOF_I18N, GLOSS_I18N, GlossLoc, NEn, SHORT_LIST, WHAT_IS, FaqT (+1 more)

### Community 178 - "Community 178"
Cohesion: 0.12
Nodes (19): Action, AuthCtx, bearer(), Bindings, gate(), KeyRecord, Plan, PLAN_LIMITS (+11 more)
Cohesion: 0.18
Nodes (17): Action, AuthCtx, bearer(), Bindings, consume(), gate(), KeyRecord, Plan (+9 more)

### Community 179 - "Community 179"
Cohesion: 0.29
Nodes (6): 1) Show HN (Hacker News) — biggest same-day dev traffic, 2) Reddit — the free calculator (value-first, no hard sell), 3) X / Twitter — quick thread, 4) Top 5 directory submissions (Track A, wmcp.sh, live now), 5) The one paid push that's deliverable today, Post today — ready-to-paste traffic for the buy path

### Community 180 - "Community 180"
Cohesion: 0.10
Nodes (20): dashboardHtml(), app, Bindings, HTML_HEADERS, Variables, landingHtml(), ogSvg(), addGradeServers() (+12 more)
Cohesion: 0.09
Nodes (33): revokeKey(), dashboardHtml(), app, Bindings, HTML_HEADERS, Variables, landingHtml(), EVENTS (+25 more)

### Community 181 - "Community 181"
Cohesion: 0.13
Nodes (24): AlertEnv, fireAlert(), checkAdmin(), deriveSlug(), Env, featureListing(), getDirectoryState(), listSubmissions() (+16 more)
Cohesion: 0.07
Nodes (46): AlertEnv, fireAlert(), checkAdmin(), deriveSlug(), Env, featureListing(), getDirectoryState(), listSubmissions() (+38 more)

### Community 183 - "Community 183"
Cohesion: 0.12
Expand All @@ -540,28 +545,28 @@ Cohesion: 0.33
Nodes (5): Don't, LAUNCH A — QuickCatch (fire when the extension is approved), LAUNCH B — wmcp.sh (live now, launch any day), Launch-day checklist (either launch), Product Hunt launch kit

### Community 199 - "Community 199"
Cohesion: 0.23
Nodes (8): baseCss(), CacheEntry, escapeHtml(), hostnameOf(), notFoundHtml(), PROVIDER_BADGE, relTime(), uHtml()
Cohesion: 0.21
Nodes (9): ARTICLE_SLUGS, baseCss(), CacheEntry, escapeHtml(), hostnameOf(), notFoundHtml(), PROVIDER_BADGE, relTime() (+1 more)

### Community 200 - "Community 200"
Cohesion: 0.18
Nodes (17): articlesIndexHtml(), directoryHtml(), captureLandingHtml(), Flow, inferSchema(), safeJson(), synthesizeFromFlows(), SynthResult (+9 more)
Cohesion: 0.28
Nodes (11): alternativesMcpserversHtml(), articlesIndexHtml(), directoryHtml(), howToNemotronToolsHtml(), mcpLeaderboardHtml(), stateOfMcpSecurityHtml(), metricsPageHtml(), emailCapture() (+3 more)

### Community 202 - "Community 202"
Cohesion: 0.14
Nodes (19): issueKey(), revokeKey(), EVENTS, FunnelEvent, MetricsEnv, track(), createCheckout(), Env (+11 more)
Cohesion: 0.15
Nodes (24): issueKey(), Env, githubCallback(), githubStart(), issueOwnKey(), logout(), me(), resolveOrCreateUser() (+16 more)

### Community 203 - "Community 203"
Cohesion: 0.24
Nodes (12): stripeWebhook(), fire(), checkoutCompleted(), CtxOpts, envMock(), EnvOverrides, kvMock(), makeCtx() (+4 more)
Cohesion: 0.07
Nodes (34): emailEnabled(), FROM(), sendEmail(), auditBody(), Env, generateOutreach(), isPayments(), isSecurityVendor() (+26 more)

### Community 204 - "Community 204"
Cohesion: 0.15
Nodes (20): composite(), gradeRank(), readGrade(), recordGrade(), reputationFeed(), Env, gradeFor(), gradeSummary() (+12 more)
Cohesion: 0.25
Nodes (14): gradeRank(), readGrade(), recordGrade(), reputationFeed(), Env, gradeFor(), gradeSummary(), jerr() (+6 more)

### Community 205 - "Community 205"
Cohesion: 0.20
Nodes (9): badgeHubHtml(), baseDomain(), COLOR, computeMcpSecurityReport(), family(), FINDING_EXCLUDE, FINDING_LABELS, FindingFreq (+1 more)
Cohesion: 0.19
Nodes (10): badgeHubHtml(), baseDomain(), COLOR, computeMcpSecurityReport(), family(), FINDING_EXCLUDE, FINDING_LABELS, FindingFreq (+2 more)

### Community 206 - "Community 206"
Cohesion: 0.17
Expand All @@ -575,29 +580,53 @@ Nodes (3): diffTools(), goodTool, MockOpts
Cohesion: 0.28
Nodes (14): categoryBySlug(), catSlug(), esc(), shell(), SKILL_CATEGORIES, SKILL_DEFS, SKILL_SLUGS, skillBySlug() (+6 more)

### Community 209 - "Community 209"
Cohesion: 0.22
Nodes (8): A-grade targets (commercial, real products), DM — X / LinkedIn (short, same register), Do / don't (keeps it at the bar), Email — A-graded operator, Power-operator note (caseyjhand.com), Scarcity (use the real numbers), The offer (accurate — don't overpromise), wmcp.sh Verified — outreach to A-graded MCP servers

### Community 210 - "Community 210"
Cohesion: 0.17
Nodes (15): connKey(), Env, hasManagedConnection(), isActive(), listManagedConnections(), refreshPkceToken(), Env, getFreshUpstreamToken() (+7 more)

### Community 211 - "Community 211"
Cohesion: 0.31
Nodes (5): decide(), Env, gradeForVerify(), verifyMcpServer(), VerifyVerdict

### Community 212 - "Community 212"
Cohesion: 0.46
Nodes (5): connKey(), Env, hasManagedConnection(), isActive(), listManagedConnections()
Nodes (7): anthropicExchange(), anthropicStart(), bytesToBase64Url(), Env, generatePkce(), randomState(), requireUser()

### Community 213 - "Community 213"
Cohesion: 0.25
Nodes (6): CAT_LABEL, connectHubHtml(), CATEGORY_NAMES, categorySlug(), gradePageHtml(), relTime()

### Community 214 - "Community 214"
Cohesion: 0.36
Nodes (7): captureLandingHtml(), Flow, inferSchema(), safeJson(), synthesizeFromFlows(), SynthResult, templatePath()

### Community 215 - "Community 215"
Cohesion: 0.40
Nodes (4): proxyExecuteGate(), DAY, kvWith(), mkEnv()

## Knowledge Gaps
- **729 isolated node(s):** `actions`, `HERE`, `FIXTURES`, `ETHEREUM_FEEDS`, `actions` (+724 more)
- **746 isolated node(s):** `actions`, `HERE`, `FIXTURES`, `ETHEREUM_FEEDS`, `actions` (+741 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **19 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
- **18 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.

## Suggested Questions
_Questions this graph is uniquely positioned to answer:_

- **Why does `resolveAuth()` connect `Community 34` to `Community 202`, `Community 203`, `Community 144`, `Community 210`, `Community 178`, `Community 180`, `Community 24`?**
- **Why does `LOCALIZED_LANGS` connect `Community 175` to `Community 199`, `Community 52`, `Community 13`, `Community 181`?**
_High betweenness centrality (0.007) - this node is a cross-community bridge._
- **Why does `LOCALIZED_LANGS` connect `Community 175` to `Community 5`, `Community 52`, `Community 13`, `Community 199`?**
- **Why does `uiNav()` connect `Community 200` to `Community 35`, `Community 73`, `Community 205`, `Community 80`, `Community 208`, `Community 214`?**
_High betweenness centrality (0.006) - this node is a cross-community bridge._
- **Why does `fireAlert()` connect `Community 181` to `Community 203`?**
_High betweenness centrality (0.006) - this node is a cross-community bridge._
- **Why does `fireAlert()` connect `Community 181` to `Community 5`?**
_High betweenness centrality (0.005) - this node is a cross-community bridge._
- **Are the 12 inferred relationships involving `Tool` (e.g. with `Any` and `str`) actually correct?**
_`Tool` has 12 INFERRED edges - model-reasoned connections that need verification._
- **Are the 6 inferred relationships involving `WmcpClient` (e.g. with `Any` and `bool`) actually correct?**
_`WmcpClient` has 6 INFERRED edges - model-reasoned connections that need verification._
- **What connects `actions`, `HERE`, `FIXTURES` to the rest of the system?**
_759 weakly-connected nodes found - possible documentation gaps or missing edges._
_776 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `Community 0` be split into smaller, more focused modules?**
_Cohesion score 0.050239234449760764 - nodes in this community are weakly interconnected._
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"nodes": [{"id": "users_alexhearts_webmcp_anything_launch_verified_pitch_md", "label": "verified-pitch.md", "file_type": "document", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L1"}, {"id": "launch_verified_pitch_wmcp_sh_verified_outreach_to_a_graded_mcp_servers", "label": "wmcp.sh Verified \u2014 outreach to A-graded MCP servers", "file_type": "document", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L1"}, {"id": "launch_verified_pitch_the_offer_accurate_don_t_overpromise", "label": "The offer (accurate \u2014 don't overpromise)", "file_type": "document", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L12"}, {"id": "launch_verified_pitch_scarcity_use_the_real_numbers", "label": "Scarcity (use the real numbers)", "file_type": "document", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L21"}, {"id": "launch_verified_pitch_email_a_graded_operator", "label": "Email \u2014 A-graded operator", "file_type": "document", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L26"}, {"id": "launch_verified_pitch_dm_x_linkedin_short_same_register", "label": "DM \u2014 X / LinkedIn (short, same register)", "file_type": "document", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L56"}, {"id": "launch_verified_pitch_power_operator_note_caseyjhand_com", "label": "Power-operator note (caseyjhand.com)", "file_type": "document", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L64"}, {"id": "launch_verified_pitch_a_grade_targets_commercial_real_products", "label": "A-grade targets (commercial, real products)", "file_type": "document", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L71"}, {"id": "launch_verified_pitch_do_don_t_keeps_it_at_the_bar", "label": "Do / don't (keeps it at the bar)", "file_type": "document", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L82"}], "edges": [{"source": "users_alexhearts_webmcp_anything_launch_verified_pitch_md", "target": "launch_verified_pitch_wmcp_sh_verified_outreach_to_a_graded_mcp_servers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L1", "weight": 1.0}, {"source": "launch_verified_pitch_wmcp_sh_verified_outreach_to_a_graded_mcp_servers", "target": "launch_verified_pitch_the_offer_accurate_don_t_overpromise", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L12", "weight": 1.0}, {"source": "launch_verified_pitch_wmcp_sh_verified_outreach_to_a_graded_mcp_servers", "target": "launch_verified_pitch_scarcity_use_the_real_numbers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L21", "weight": 1.0}, {"source": "launch_verified_pitch_wmcp_sh_verified_outreach_to_a_graded_mcp_servers", "target": "launch_verified_pitch_email_a_graded_operator", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L26", "weight": 1.0}, {"source": "launch_verified_pitch_wmcp_sh_verified_outreach_to_a_graded_mcp_servers", "target": "launch_verified_pitch_dm_x_linkedin_short_same_register", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L56", "weight": 1.0}, {"source": "launch_verified_pitch_wmcp_sh_verified_outreach_to_a_graded_mcp_servers", "target": "launch_verified_pitch_power_operator_note_caseyjhand_com", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L64", "weight": 1.0}, {"source": "launch_verified_pitch_wmcp_sh_verified_outreach_to_a_graded_mcp_servers", "target": "launch_verified_pitch_a_grade_targets_commercial_real_products", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L71", "weight": 1.0}, {"source": "launch_verified_pitch_wmcp_sh_verified_outreach_to_a_graded_mcp_servers", "target": "launch_verified_pitch_do_don_t_keeps_it_at_the_bar", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/alexhearts/webmcp-anything/launch/verified-pitch.md", "source_location": "L82", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
Loading
Loading