freshcontext-mcp 0.3.13 → 0.3.15
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.
- package/.actor/Dockerfile +7 -4
- package/.actor/actor.json +1 -1
- package/CONTEXT_SKILL.md +84 -0
- package/FRESHCONTEXT_SPEC.md +80 -6
- package/HANDOFF.md +220 -91
- package/METHODOLOGY.md +277 -0
- package/README.md +195 -41
- package/SESSION_SAVE_V5.md +121 -0
- package/SESSION_SAVE_V6.md +194 -0
- package/SESSION_SAVE_V9.md +170 -0
- package/dist/apify.js +133 -0
- package/dist/server.js +92 -46
- package/freshcontext-validate.js +196 -0
- package/freshcontext.schema.json +103 -0
- package/input_schema.json +16 -17
- package/package.json +2 -2
- package/server.json +3 -3
package/HANDOFF.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# FreshContext — Handoff Document
|
|
2
|
-
**Version:** 0.3.
|
|
3
|
-
**
|
|
2
|
+
**Version:** 0.3.14 (npm) / 0.21 (Apify)
|
|
3
|
+
**Spec:** v1.1
|
|
4
|
+
**Date:** 2026-04-09
|
|
4
5
|
**Author:** Immanuel Gabriel (Prince Gabriel), Grootfontein, Namibia
|
|
5
6
|
**Contact:** gimmanuel73@gmail.com
|
|
6
7
|
|
|
@@ -8,17 +9,53 @@
|
|
|
8
9
|
|
|
9
10
|
## What You Are Receiving
|
|
10
11
|
|
|
11
|
-
FreshContext is a
|
|
12
|
-
retrieved web data in a structured freshness envelope — exact retrieval timestamp,
|
|
13
|
-
publication date estimate, freshness confidence (high/medium/low), and a 0-100
|
|
14
|
-
numeric score with domain-specific decay rates.
|
|
12
|
+
FreshContext is a **data freshness layer for AI agents** — an open standard and reference implementation that makes retrieved data trustworthy.
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
Anthropic's official MCP Registry, npm, and Apify Store.
|
|
14
|
+
Every piece of web data an AI agent retrieves has an age. Most tools ignore it. FreshContext surfaces it — wrapping every result in a structured envelope:
|
|
18
15
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
```
|
|
17
|
+
[FRESHCONTEXT]
|
|
18
|
+
Source: https://github.com/owner/repo
|
|
19
|
+
Published: 2024-11-03
|
|
20
|
+
Retrieved: 2026-04-05T09:19:00Z
|
|
21
|
+
Confidence: high
|
|
22
|
+
---
|
|
23
|
+
... content ...
|
|
24
|
+
[/FRESHCONTEXT]
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**20 tools. No API keys. Deployed globally on Cloudflare's edge.**
|
|
28
|
+
|
|
29
|
+
Listed on the official MCP Registry, npm, and Apify Store. The FreshContext Specification v1.1 is published as an open standard under MIT license — any tool that wraps retrieved data in this envelope is FreshContext-compatible.
|
|
30
|
+
|
|
31
|
+
**npm downloads (first week, zero marketing): 191**
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## The 20 Tools
|
|
36
|
+
|
|
37
|
+
### Standard (11)
|
|
38
|
+
`extract_github`, `extract_hackernews`, `extract_scholar`, `extract_arxiv`,
|
|
39
|
+
`extract_reddit`, `extract_yc`, `extract_producthunt`, `search_repos`,
|
|
40
|
+
`package_trends`, `extract_finance`, `search_jobs`
|
|
41
|
+
|
|
42
|
+
### Composite Landscapes (5)
|
|
43
|
+
| Tool | Sources | What it delivers |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| `extract_landscape` | 6 | YC + GitHub + HN + Reddit + Product Hunt + npm |
|
|
46
|
+
| `extract_idea_landscape` | 6 | HN + YC + GitHub + Jobs + npm + Product Hunt — full idea validation |
|
|
47
|
+
| `extract_gov_landscape` | 4 | Gov contracts + HN + GitHub + changelog |
|
|
48
|
+
| `extract_finance_landscape` | 5 | Finance + HN + Reddit + GitHub + changelog |
|
|
49
|
+
| `extract_company_landscape` | 5 | SEC + govcontracts + GDELT + changelog + finance |
|
|
50
|
+
|
|
51
|
+
### Unique — Not Available in Any Other MCP Server (5)
|
|
52
|
+
| Tool | Source | What it delivers |
|
|
53
|
+
|---|---|---|
|
|
54
|
+
| `extract_changelog` | GitHub Releases API / npm / auto-discover | Update history from any repo, package, or website |
|
|
55
|
+
| `extract_govcontracts` | USASpending.gov | US federal contract awards — company, amount, agency, period |
|
|
56
|
+
| `extract_sec_filings` | SEC EDGAR | 8-K filings — legally mandated material event disclosures |
|
|
57
|
+
| `extract_gdelt` | GDELT Project | Global news intelligence — 100+ languages, every country, 15-min updates |
|
|
58
|
+
| `extract_gebiz` | data.gov.sg | Singapore Government procurement tenders — open dataset, no auth |
|
|
22
59
|
|
|
23
60
|
---
|
|
24
61
|
|
|
@@ -27,46 +64,60 @@ from any GitHub repo, npm package, or website).
|
|
|
27
64
|
### 1. GitHub Repository
|
|
28
65
|
URL: https://github.com/PrinceGabriel-lgtm/freshcontext-mcp
|
|
29
66
|
Branch: main
|
|
30
|
-
Transfer method: GitHub Settings
|
|
31
|
-
|
|
67
|
+
Transfer method: GitHub Settings → Transfer ownership
|
|
68
|
+
Contents: All TypeScript source, Dockerfile, specs, session saves, roadmap, CI/CD
|
|
32
69
|
|
|
33
70
|
### 2. npm Package
|
|
34
|
-
Package: freshcontext-mcp (v0.3.
|
|
71
|
+
Package: `freshcontext-mcp` (v0.3.14)
|
|
35
72
|
URL: https://www.npmjs.com/package/freshcontext-mcp
|
|
36
73
|
Account: immanuel-gabriel on npmjs.com
|
|
37
|
-
Transfer method: npm owner add new-username freshcontext-mcp
|
|
38
|
-
Note:
|
|
74
|
+
Transfer method: `npm owner add new-username freshcontext-mcp`
|
|
75
|
+
Note: Auto-published via GitHub Actions on every push to main
|
|
39
76
|
|
|
40
77
|
### 3. Cloudflare Account
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
78
|
+
| Resource | Details |
|
|
79
|
+
|---|---|
|
|
80
|
+
| Worker | freshcontext-mcp — the live MCP endpoint |
|
|
81
|
+
| D1 | freshcontext-db — ID: d9898d65-f67e-4dcb-abdc-7f7b53f2d444 |
|
|
82
|
+
| KV | RATE_LIMITER and CACHE — IDs in wrangler.jsonc |
|
|
83
|
+
| Cron | `0 */6 * * *` — runs automatically every 6 hours |
|
|
84
|
+
| Endpoint | https://freshcontext-mcp.gimmanuel73.workers.dev/mcp |
|
|
47
85
|
|
|
48
86
|
Transfer method: Add new account as Super Administrator, remove original.
|
|
49
|
-
D1 export: wrangler d1 export freshcontext-db --output=dump.sql
|
|
87
|
+
D1 export: `wrangler d1 export freshcontext-db --output=dump.sql`
|
|
88
|
+
|
|
89
|
+
Features live on the Worker:
|
|
90
|
+
- KV response caching (adapter-specific TTLs)
|
|
91
|
+
- Global rate limiting (60 req/min per IP across all edge nodes)
|
|
92
|
+
- 6-hour cron scraper with relevancy scoring (0-100, noise below 35 filtered)
|
|
93
|
+
- Hash-based deduplication on all cron results
|
|
50
94
|
|
|
51
95
|
### 4. Apify Actor
|
|
52
|
-
Actor:
|
|
53
|
-
|
|
96
|
+
Actor: `prince_gabriel/freshcontext-mcp`
|
|
97
|
+
Version: 0.21 (build 0.21.2 — tested and confirmed working April 2026)
|
|
98
|
+
URL: https://apify.com/prince_gabriel/freshcontext-mcp
|
|
54
99
|
Monetization: $50.00 per 1,000 results (Pay per event)
|
|
55
|
-
Transfer method: Re-publish under new Apify account
|
|
100
|
+
Transfer method: Re-publish under new Apify account using `apify push`
|
|
101
|
+
Note: Use `apify push` from local — GitHub cloning is blocked on Apify's build servers
|
|
56
102
|
|
|
57
103
|
### 5. MCP Registry Listing
|
|
58
|
-
Entry:
|
|
59
|
-
Config: server.json in the GitHub repo
|
|
104
|
+
Entry: `io.github.PrinceGabriel-lgtm/freshcontext`
|
|
105
|
+
Config: `server.json` in the GitHub repo
|
|
60
106
|
Transfer method: Update server.json with new repo URL and re-submit
|
|
61
107
|
|
|
62
108
|
### 6. GitHub Actions CI/CD
|
|
63
|
-
File:
|
|
64
|
-
Action: On every push to main — npm ci
|
|
65
|
-
Secret: NPM_TOKEN (granular access token from npmjs.com, renew annually)
|
|
109
|
+
File: `.github/workflows/publish.yml`
|
|
110
|
+
Action: On every push to main — `npm ci` → `tsc` → `npm publish`
|
|
111
|
+
Secret: `NPM_TOKEN` (granular access token from npmjs.com, renew annually)
|
|
112
|
+
|
|
113
|
+
### 7. PitchHut Listing
|
|
114
|
+
URL: https://pitchhut.com/project/freshcontext-mcp-tools
|
|
115
|
+
Account: gimmanuel73@gmail.com
|
|
116
|
+
Status: Claimed April 2026
|
|
66
117
|
|
|
67
118
|
---
|
|
68
119
|
|
|
69
|
-
## Credentials Map
|
|
120
|
+
## Credentials Map
|
|
70
121
|
|
|
71
122
|
| Credential | Where Used | Location |
|
|
72
123
|
|---|---|---|
|
|
@@ -74,109 +125,187 @@ Secret: NPM_TOKEN (granular access token from npmjs.com, renew annually)
|
|
|
74
125
|
| ANTHROPIC_KEY | Synthesis/briefing endpoint | Cloudflare env var |
|
|
75
126
|
| GITHUB_TOKEN | GitHub API rate limit bypass | Cloudflare env var |
|
|
76
127
|
| NPM_TOKEN | GitHub Actions auto-publish | GitHub secret |
|
|
128
|
+
| Stripe keys | Catatonica payments | Supabase / Cloudflare env |
|
|
77
129
|
|
|
78
130
|
---
|
|
79
131
|
|
|
80
132
|
## Codebase Map
|
|
81
133
|
|
|
82
|
-
|
|
83
|
-
src/
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
.
|
|
94
|
-
|
|
95
|
-
|
|
134
|
+
```
|
|
135
|
+
src/
|
|
136
|
+
server.ts — MCP stdio server, all 20 tools registered here
|
|
137
|
+
apify.ts — Apify Actor entry point (read input, call adapter, exit)
|
|
138
|
+
security.ts — URL validation, SSRF prevention, domain allowlists
|
|
139
|
+
types.ts — FreshContext, AdapterResult, ExtractOptions interfaces
|
|
140
|
+
adapters/ — One file per data source (18 files)
|
|
141
|
+
changelog.ts UNIQUE: GitHub Releases API + npm + auto-discover
|
|
142
|
+
govcontracts.ts UNIQUE: USASpending.gov federal contract awards
|
|
143
|
+
secFilings.ts UNIQUE: SEC EDGAR 8-K filings
|
|
144
|
+
gdelt.ts UNIQUE: GDELT global news intelligence
|
|
145
|
+
gebiz.ts UNIQUE: Singapore GeBIZ procurement
|
|
146
|
+
tools/
|
|
147
|
+
freshnessStamp.ts — Score calculation, JSON form, text envelope
|
|
148
|
+
|
|
149
|
+
worker/src/worker.ts — Cloudflare Worker: 20 tools + KV cache + rate limit
|
|
150
|
+
+ D1 cron scraper + relevancy scoring + briefing formatter
|
|
151
|
+
|
|
152
|
+
.actor/
|
|
153
|
+
Dockerfile — apify/actor-node-playwright-chrome:20 base image
|
|
154
|
+
actor.json — version: "0.21", Apify Actor metadata
|
|
155
|
+
|
|
156
|
+
FRESHCONTEXT_SPEC.md — The open standard v1.1 (MIT license)
|
|
96
157
|
ROADMAP.md — 10-layer product vision
|
|
158
|
+
HANDOFF.md — This file
|
|
159
|
+
SESSION_SAVE_V6.md — Most recent session save (April 2026)
|
|
97
160
|
server.json — MCP Registry listing
|
|
98
161
|
.github/workflows/
|
|
99
162
|
publish.yml — GitHub Actions CI/CD
|
|
163
|
+
```
|
|
100
164
|
|
|
101
165
|
---
|
|
102
166
|
|
|
103
|
-
##
|
|
167
|
+
## D1 Database Schema
|
|
104
168
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
package_trends, extract_finance, search_jobs
|
|
169
|
+
```
|
|
170
|
+
watched_queries 18 active monitored topics
|
|
171
|
+
id, adapter, query, label, filters, enabled, last_run_at
|
|
109
172
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
extract_finance_landscape — finance + HN + Reddit + GitHub + changelog
|
|
173
|
+
scrape_results Raw results, deduplicated by content hash
|
|
174
|
+
id, watched_query_id, adapter, query, raw_content, result_hash,
|
|
175
|
+
is_new, scraped_at, relevancy_score
|
|
114
176
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
177
|
+
briefings Formatted intelligence reports per cron run
|
|
178
|
+
id, user_id, summary, new_results_count, adapters_run, created_at
|
|
179
|
+
|
|
180
|
+
user_profiles Personalization data for briefing synthesis
|
|
181
|
+
id, name, skills, certifications, targets, location, context
|
|
182
|
+
```
|
|
118
183
|
|
|
119
184
|
---
|
|
120
185
|
|
|
121
|
-
##
|
|
186
|
+
## The FreshContext Specification v1.1
|
|
122
187
|
|
|
123
|
-
|
|
124
|
-
id, adapter, query, label, filters, enabled, last_run_at
|
|
188
|
+
`FRESHCONTEXT_SPEC.md` is the open standard, MIT license, authored March 2026, updated April 2026.
|
|
125
189
|
|
|
126
|
-
|
|
127
|
-
|
|
190
|
+
Key additions in v1.1 vs v1.0:
|
|
191
|
+
- Domain-specific decay rate table (financial: 5.0 → academic: 0.3)
|
|
192
|
+
- Composite Adapters section — defines how multi-source tools handle envelopes
|
|
193
|
+
- Compatibility Levels: compatible / aware / scored
|
|
194
|
+
- Reference implementation updated to 20 adapters
|
|
128
195
|
|
|
129
|
-
|
|
130
|
-
id, user_id, summary, new_results_count, adapters_run, created_at
|
|
196
|
+
Any implementation returning the `[FRESHCONTEXT]...[/FRESHCONTEXT]` envelope or the structured JSON form with `freshcontext.retrieved_at` and `freshcontext.freshness_confidence` is FreshContext-compatible.
|
|
131
197
|
|
|
132
|
-
|
|
133
|
-
id, name, skills, certifications, targets, location, context
|
|
198
|
+
**The spec is the durable asset. The code is the reference implementation.**
|
|
134
199
|
|
|
135
200
|
---
|
|
136
201
|
|
|
137
|
-
## The
|
|
202
|
+
## The Best Demo
|
|
203
|
+
|
|
204
|
+
Run this in Claude with FreshContext connected:
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
Use extract_company_landscape with company "Palantir" and ticker "PLTR"
|
|
208
|
+
```
|
|
138
209
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
210
|
+
Returns in one call, all timestamped:
|
|
211
|
+
- Q4 2025 SEC 8-K filing — revenue $1.407B (+70% YoY), Rule of 40 score 127%
|
|
212
|
+
- $1.1B+ in federal contracts from USASpending.gov across DoD, DHS, VA, DoE
|
|
213
|
+
- Global news coverage from GDELT — ICE/Medicaid controversy, UK MoD warning
|
|
214
|
+
- Live PLTR price, market cap ~$370B, P/E 244x from Yahoo Finance
|
|
143
215
|
|
|
144
|
-
|
|
216
|
+
Bloomberg Terminal doesn't read commit history as a company health signal. FreshContext does.
|
|
145
217
|
|
|
146
218
|
---
|
|
147
219
|
|
|
148
220
|
## What Keeps Running Without You
|
|
149
221
|
|
|
150
|
-
The Cloudflare cron fires every 6 hours automatically. Every run
|
|
151
|
-
|
|
152
|
-
|
|
222
|
+
The Cloudflare cron fires every 6 hours automatically. Every run:
|
|
223
|
+
1. Scrapes all 18 watched queries across all adapters
|
|
224
|
+
2. Deduplicates results by content hash
|
|
225
|
+
3. Scores each result for relevancy (0-100)
|
|
226
|
+
4. Filters noise below 35
|
|
227
|
+
5. Stores new signals in D1
|
|
228
|
+
6. Formats a briefing sorted by relevancy score
|
|
229
|
+
|
|
230
|
+
The dataset accumulates indefinitely. No action required.
|
|
153
231
|
|
|
154
232
|
---
|
|
155
233
|
|
|
156
|
-
##
|
|
234
|
+
## Valuation Reference
|
|
157
235
|
|
|
158
|
-
|
|
159
|
-
|
|
236
|
+
### FreshContext
|
|
237
|
+
| Deal type | Ask | Accept | Walk below |
|
|
238
|
+
|---|---|---|---|
|
|
239
|
+
| White-label licence | $8K/mo | $2–3K/mo | $1,500/mo |
|
|
240
|
+
| Full acquisition | $500K | $80–150K | $50K |
|
|
160
241
|
|
|
161
|
-
|
|
162
|
-
|
|
242
|
+
### Catatonica
|
|
243
|
+
| Deal type | Ask | Accept | Walk below |
|
|
244
|
+
|---|---|---|---|
|
|
245
|
+
| White-label licence | $5K/mo | $1.5–2.5K/mo | $800/mo |
|
|
246
|
+
| Full acquisition | $250K | $30–75K | $20K |
|
|
163
247
|
|
|
164
|
-
|
|
165
|
-
add one line to server.ts. Gives tool call tracking and usage dashboards.
|
|
248
|
+
---
|
|
166
249
|
|
|
167
|
-
|
|
168
|
-
|
|
250
|
+
## Active Outreach at Time of Handoff (April 2026)
|
|
251
|
+
|
|
252
|
+
### FreshContext — AGI Leasing Pitch Sent
|
|
253
|
+
OpenAI (partner form submitted + partnerships@openai.com),
|
|
254
|
+
Anthropic (partnerships@anthropic.com),
|
|
255
|
+
Google (partnerships@google.com),
|
|
256
|
+
xAI (partnerships@x.ai),
|
|
257
|
+
Cohere (partnerships@cohere.com),
|
|
258
|
+
Meta AI (ai-partnerships@meta.com),
|
|
259
|
+
Perplexity (partnerships@perplexity.ai),
|
|
260
|
+
Mistral (partnerships@mistral.ai),
|
|
261
|
+
Hugging Face (partnerships@huggingface.co),
|
|
262
|
+
DeepSeek (partnerships@deepseek.com)
|
|
263
|
+
|
|
264
|
+
### FreshContext — Other
|
|
265
|
+
Palantir, GovTech Singapore (GeBIZ adapter delivered),
|
|
266
|
+
LangChain, LlamaIndex, CrewAI, Zalando, Celonis, Vercel,
|
|
267
|
+
FactSet, Morningstar, LSEG, PatSnap, Klarna, MiniMax,
|
|
268
|
+
Apify, Cloudflare Startups
|
|
269
|
+
|
|
270
|
+
### Catatonica — Wellness / Wearables
|
|
271
|
+
Calm (+ partnership form submitted via Monday.com),
|
|
272
|
+
Headspace, Whoop, Oura, WellHub, Eight Sleep
|
|
273
|
+
|
|
274
|
+
### Catatonica — Japan
|
|
275
|
+
Recruit Holdings, LY Corporation (LINE), Mercari,
|
|
276
|
+
DeNA, KDDI, Meiji Yasuda Life
|
|
277
|
+
|
|
278
|
+
### LinkedIn Activity
|
|
279
|
+
Profile post live (origin story), 3 group posts live across
|
|
280
|
+
AI/ML groups — 107+ impressions. Stephen Petersilge
|
|
281
|
+
(Head of BizOps, OpenAI) messaged directly.
|
|
169
282
|
|
|
170
283
|
---
|
|
171
284
|
|
|
172
|
-
##
|
|
285
|
+
## Pending Items
|
|
286
|
+
|
|
287
|
+
| Item | Notes |
|
|
288
|
+
|---|---|
|
|
289
|
+
| Synthesis endpoint `/briefing/now` | Paused — needs ANTHROPIC_KEY in Worker env + credits at console.anthropic.com. Infrastructure fully built. |
|
|
290
|
+
| Apify store description | Still shows old tool count — update to 20 tools |
|
|
291
|
+
| Dashboard (Layer 5) | React frontend for D1 pipeline — designed, not yet built |
|
|
292
|
+
| `extract_gdelt` GKG upgrade | Tone scores, Goldstein scale, event codes — planned |
|
|
293
|
+
| Agnost AI analytics | Free MCP analytics via Apify. Sign up at app.agnost.ai |
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Also Built: Catatonica
|
|
298
|
+
|
|
299
|
+
A second project by the same author.
|
|
173
300
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
301
|
+
Live at: https://catatonica.pages.dev
|
|
302
|
+
Stack: Vanilla HTML/CSS/JS, Cloudflare Pages, Supabase (magic link auth), Stripe
|
|
303
|
+
Pricing: Free / $9/mo Deep / $29/mo The Order
|
|
304
|
+
Philosophy: The Art of Doing Nothing — structured stillness practice for high-intensity minds
|
|
305
|
+
Mechanics: Situations → Sessions → Catatons → Planned Obsolescence → Chronicle
|
|
178
306
|
|
|
179
|
-
|
|
307
|
+
Catatonica is available for separate acquisition or white-label arrangement.
|
|
308
|
+
See HANDOFF.md valuation section above.
|
|
180
309
|
|
|
181
310
|
---
|
|
182
311
|
|