@tensorfeed/mcp-server 1.10.0 → 1.11.1

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/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to the [TensorFeed.ai MCP server](https://github.com/RipperMercs/tensorfeed/tree/main/mcp-server). Free tools work without configuration; premium tools require a bearer token via the `TENSORFEED_TOKEN` env var. Buy credits at [tensorfeed.ai/developers/agent-payments](https://tensorfeed.ai/developers/agent-payments).
4
4
 
5
+ ## 1.11.0 - 2026-04-29
6
+
7
+ ### Added
8
+ - `probe_latest` tool — last 24 hours of measured LLM endpoint latency and availability per provider (Anthropic, OpenAI, Google, Mistral, Cohere). TensorFeed pings each provider's chat completion endpoint every 15 min and records ttfb / total / status. The data is unique because it is measured, not self-reported. Free, no auth.
9
+ - `probe_series` tool — daily SLA series for one provider with ttfb/total p50/p95/p99 and incident-hour count, 90-day max range. 1 credit per call. Pairs with `premium_routing` for picking a model whose SLA you can verify.
10
+
5
11
  ## 1.10.0 - 2026-04-29
6
12
 
7
13
  ### Added
package/README.md CHANGED
@@ -1,116 +1,34 @@
1
1
  # TensorFeed MCP Server
2
2
 
3
- A [Model Context Protocol](https://modelcontextprotocol.io) server that gives AI agents access to real-time AI industry data and premium endpoints from [TensorFeed.ai](https://tensorfeed.ai).
3
+ > **The MCP server has its own repo: https://github.com/RipperMercs/tensorfeed-mcp**
4
+ >
5
+ > User-facing docs, install instructions, and the full tool reference live there. Star and watch that repo to follow MCP server updates.
4
6
 
5
- ## Free Tools
7
+ This subfolder remains in the main `tensorfeed` repo as the **publishing source** for the npm package (`@tensorfeed/mcp-server`) and the [official MCP registry](https://registry.modelcontextprotocol.io/v0/servers/ai.tensorfeed/mcp-server) entry. Edits to `src/`, `server.json`, `package.json`, etc. happen here and get pushed to the standalone repo on release.
6
8
 
7
- | Tool | Description |
8
- |------|-------------|
9
- | `get_ai_news` | Latest AI news from 15+ sources (filterable by category) |
10
- | `get_ai_status` | Real-time status of Claude, OpenAI, Gemini, Mistral, and more |
11
- | `is_service_down` | Check if a specific AI service is down |
12
- | `get_model_pricing` | Compare pricing across all major AI model providers |
13
- | `get_ai_today` | Summary of top AI stories from the last 24 hours |
14
- | `get_agent_activity` | Live AI bot traffic on TensorFeed.ai with top-bot breakdown |
15
- | `mcp_registry_snapshot` | Today's summary of the official MCP server registry: total servers, top namespaces, newly added/reactivated/deprecated names |
9
+ ## Publish a new version
16
10
 
17
- ## Premium Tools (paid in USDC on Base)
11
+ From the main tensorfeed repo:
18
12
 
19
- These tools require a `TENSORFEED_TOKEN` env var. Buy credits at [tensorfeed.ai/developers/agent-payments](https://tensorfeed.ai/developers/agent-payments) and pass the returned `tf_live_...` token to your MCP client.
13
+ ```powershell
14
+ # 1. Bump the version in mcp-server/package.json + mcp-server/server.json
15
+ # 2. Build + npm publish from the mcp-server/ folder
16
+ cd mcp-server
17
+ npm run build
18
+ npm publish --access public
20
19
 
21
- | Tool | Cost | Description |
22
- |------|------|-------------|
23
- | `get_account_balance` | Free | Show credits remaining on the configured token |
24
- | `get_account_usage` | Free | Per-endpoint usage history for the configured token |
25
- | `premium_routing` | 1 credit | Top-N ranked AI model recommendations with full score breakdown |
26
- | `pricing_series` | 1 credit | Daily price points for one model with min/max/delta summary |
27
- | `benchmark_series` | 1 credit | Score evolution for a benchmark on one model |
28
- | `status_uptime` | 1 credit | Daily uptime % for one provider with incident-day list |
29
- | `premium_agents_directory` | 1 credit | Enriched agents catalog with live status, news, traffic, trending_score |
30
- | `news_search` | 1 credit | Full-text news search with date/provider/category filters and relevance scoring |
31
- | `cost_projection` | 1 credit | Project workload cost across 1-10 AI models with 4 time horizons and cheapest-monthly ranking |
32
- | `provider_deepdive` | 1 credit | One provider's full profile: status, all models with benchmarks joined, recent news, traffic |
33
- | `compare_models` | 1 credit | Side-by-side comparison of 2-5 models with normalized benchmarks and rankings |
34
- | `whats_new` | 1 credit | Agent morning brief: pricing changes, incidents, top news from last 1-7 days |
35
- | `mcp_registry_series` | 1 credit | Multi-day MCP registry growth and churn series, 90-day max range |
36
- | `list_watches` | Free | List active webhook watches owned by the token |
37
- | `create_price_watch` | 1 credit | Register a webhook watch on a model price change |
38
- | `create_status_watch` | 1 credit | Register a webhook watch on a service status transition |
39
- | `create_digest_watch` | 1 credit | Register a daily/weekly digest webhook (pricing-changes summary, set-and-forget) |
40
- | `delete_watch` | Free | Remove an active watch |
20
+ # 3. Republish to the official MCP registry
21
+ .\scripts\mcp-publish.ps1
41
22
 
42
- ## Setup with Claude Code
43
-
44
- Add to your Claude Code MCP config (`~/.claude/claude_desktop_config.json`):
45
-
46
- ```json
47
- {
48
- "mcpServers": {
49
- "tensorfeed": {
50
- "command": "npx",
51
- "args": ["-y", "@tensorfeed/mcp-server"]
52
- }
53
- }
54
- }
55
- ```
56
-
57
- To enable premium tools, add the `env` block:
58
-
59
- ```json
60
- {
61
- "mcpServers": {
62
- "tensorfeed": {
63
- "command": "npx",
64
- "args": ["-y", "@tensorfeed/mcp-server"],
65
- "env": {
66
- "TENSORFEED_TOKEN": "tf_live_..."
67
- }
68
- }
69
- }
70
- }
71
- ```
72
-
73
- ## Setup with Claude Desktop
74
-
75
- Add to Claude Desktop settings (same shape as above).
76
-
77
- ## Run Locally
78
-
79
- ```bash
80
- npx @tensorfeed/mcp-server
81
- # or with a token for premium endpoints
82
- TENSORFEED_TOKEN=tf_live_... npx @tensorfeed/mcp-server
23
+ # 4. Mirror the new version to the standalone repo
24
+ # (manual until we wire it as a release-time GitHub Action)
83
25
  ```
84
26
 
85
- ## Example Queries
86
-
87
- Free tier:
88
-
89
- - "What's happening in AI today?"
90
- - "Is Claude down right now?"
91
- - "Compare pricing between Claude Opus and GPT-4o"
92
- - "Show me the latest AI research papers"
93
- - "What's the status of all AI services?"
94
-
95
- Premium tier (with `TENSORFEED_TOKEN` set):
96
-
97
- - "Recommend the best AI model for code under $5 per million tokens"
98
- - "Show the price history of Claude Opus 4.7 over the last 30 days"
99
- - "What's Anthropic's uptime this month?"
100
- - "Compare model pricing between April 1 and today"
101
- - "Set up a webhook to my server when Claude goes down"
102
- - "What's my credit balance?"
103
-
104
- ## Pricing
105
-
106
- Premium tools cost 1 credit per call. Credits are 50 per $1 USDC at base rate, with volume discounts at $5 (10%), $30 (25%), and $200 (40%). See [tensorfeed.ai/developers/agent-payments](https://tensorfeed.ai/developers/agent-payments) for the full payment flow and trust attestation.
107
-
108
- No refunds: all credit purchases are final per Section 17.5 of the [Terms](https://tensorfeed.ai/terms#premium). Credits do not expire and are jointly redeemable on tensorfeed.ai and terminalfeed.io, so the safe pattern is to buy small ($1 USDC for 50 credits) and top up as call volume is calibrated. Premium access is unavailable in OFAC-sanctioned jurisdictions; see Section 17.9.
109
-
110
- ## Data Source
111
-
112
- All data comes from the [TensorFeed.ai API](https://tensorfeed.ai/developers), which aggregates from 15+ sources including Anthropic, OpenAI, Google AI, TechCrunch, The Verge, arXiv, Hacker News, and more. Updated every 10 minutes.
113
-
114
- ## License
27
+ ## Quick links
115
28
 
116
- MIT - Built by [TensorFeed.ai](https://tensorfeed.ai/about)
29
+ - **User-facing repo (please star):** https://github.com/RipperMercs/tensorfeed-mcp
30
+ - **npm package:** https://www.npmjs.com/package/@tensorfeed/mcp-server
31
+ - **Official MCP registry:** https://registry.modelcontextprotocol.io/v0/servers/ai.tensorfeed/mcp-server
32
+ - **TensorFeed.ai:** https://tensorfeed.ai
33
+ - **Premium / payments:** https://tensorfeed.ai/developers/agent-payments
34
+ - **AFTA standard:** https://tensorfeed.ai/agent-fair-trade
package/dist/index.js CHANGED
@@ -587,6 +587,63 @@ server.tool('delete_watch', 'Delete one of your active webhook watches by id. Fr
587
587
  await fetchJSON(`/premium/watches/${watch_id}`, { method: 'DELETE', auth: true });
588
588
  return { content: [{ type: 'text', text: `Deleted watch ${watch_id}.` }] };
589
589
  });
590
+ // ── Tool: probe_latest (free) ───────────────────────────────────────
591
+ server.tool('probe_latest', 'Last 24 hours of measured LLM endpoint latency and availability per provider (Anthropic, OpenAI, Google, Mistral, Cohere). TensorFeed pings each provider\'s chat completion endpoint every 15 min and records time-to-first-byte, total response time, and HTTP status. Returns per-provider success rate and ttfb/total p50/p95/p99 latency. The data is unique because we measure it ourselves, not self-reported by the providers. Useful when an agent needs to pick a provider whose SLA you can verify, or to detect ongoing incidents before they hit a status page. Free, no auth.', {}, async () => {
592
+ const data = (await fetchJSON('/probe/latest'));
593
+ const s = data.summary;
594
+ if (s.providers.length === 0) {
595
+ return { content: [{ type: 'text', text: 'No probe data yet. Probing starts as soon as TensorFeed has at least one provider key configured.' }] };
596
+ }
597
+ const rows = s.providers
598
+ .sort((a, b) => b.ok_pct - a.ok_pct)
599
+ .map(p => {
600
+ const okPct = (p.ok_pct * 100).toFixed(1);
601
+ const ttfb = p.ttfb.p50 !== null ? `p50 ${p.ttfb.p50}ms / p95 ${p.ttfb.p95}ms / p99 ${p.ttfb.p99}ms` : 'no successful probes';
602
+ const total = p.total.p50 !== null ? `p50 ${p.total.p50}ms / p95 ${p.total.p95}ms / p99 ${p.total.p99}ms` : 'no successful probes';
603
+ const err = p.last_error ? `\n last error: ${p.last_error}` : '';
604
+ return ` ${p.provider}: ${okPct}% ok over ${p.count} probes\n ttfb: ${ttfb}\n total: ${total}${err}`;
605
+ })
606
+ .join('\n\n');
607
+ return {
608
+ content: [
609
+ {
610
+ type: 'text',
611
+ text: `LLM Endpoint SLA (${s.window_label}, computed ${s.computed_at})\n\n${rows}\n\nSource: TensorFeed measured probes, not self-reported.`,
612
+ },
613
+ ],
614
+ };
615
+ });
616
+ // ── Tool: probe_series (1 credit) ───────────────────────────────────
617
+ server.tool('probe_series', 'Daily SLA series for one LLM provider, measured by TensorFeed. Returns per-day count, success rate, ttfb p50/p95/p99, total p50/p95/p99, and incident-hour count across the requested window. Provider status pages are politically managed; this is the measured truth. Pairs naturally with premium_routing for picking a model whose SLA you can verify. Costs 1 credit.', {
618
+ provider: z.enum(['anthropic', 'openai', 'google', 'mistral', 'cohere']).describe('LLM provider key'),
619
+ from: z.string().optional().describe('Inclusive start YYYY-MM-DD (default: 30 days before to)'),
620
+ to: z.string().optional().describe('Inclusive end YYYY-MM-DD (default: today UTC)'),
621
+ }, async ({ provider, from, to }) => {
622
+ const params = new URLSearchParams();
623
+ params.set('provider', provider);
624
+ if (from)
625
+ params.set('from', from);
626
+ if (to)
627
+ params.set('to', to);
628
+ const data = (await fetchJSON(`/premium/probe/series?${params}`, { auth: true }));
629
+ const lines = data.points
630
+ .map(p => p.has_data
631
+ ? ` ${p.date} ${(p.ok_pct * 100).toFixed(1)}% ok ttfb p50/p95: ${p.ttfb_p50}/${p.ttfb_p95}ms total p50/p95: ${p.total_p50}/${p.total_p95}ms incidents: ${p.incident_hours}h`
632
+ : ` ${p.date} (no data)`)
633
+ .join('\n');
634
+ const overall = data.summary.overall_uptime_pct !== null
635
+ ? `${(data.summary.overall_uptime_pct * 100).toFixed(2)}%`
636
+ : 'insufficient data';
637
+ const notes = data.notes.length ? '\nNotes: ' + data.notes.join('; ') : '';
638
+ return {
639
+ content: [
640
+ {
641
+ type: 'text',
642
+ text: `${data.provider} measured SLA, ${data.from} -> ${data.to}\nOverall uptime: ${overall} (${data.summary.days_with_data} days with data, ${data.summary.days_with_incidents} with incidents)\n\n${lines}${notes}\n\nCredits remaining: ${data.billing?.credits_remaining ?? '?'}`,
643
+ },
644
+ ],
645
+ };
646
+ });
590
647
  // ── Tool: mcp_registry_snapshot (free) ──────────────────────────────
591
648
  server.tool('mcp_registry_snapshot', 'Today\'s summary of the official Model Context Protocol server registry. Returns total servers, by-status breakdown, top namespaces, and 1-day deltas (newly added, reactivated, deprecated). Captured daily at 9:30 AM UTC from registry.modelcontextprotocol.io. Useful when an agent wants to see how the MCP ecosystem is growing or detect freshly-deprecated servers it may be using. Free, no auth.', {}, async () => {
592
649
  const data = (await fetchJSON('/mcp/registry/snapshot'));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tensorfeed/mcp-server",
3
- "version": "1.10.0",
3
+ "version": "1.11.1",
4
4
  "mcpName": "ai.tensorfeed/mcp-server",
5
5
  "description": "MCP server for TensorFeed.ai - AI news, status, model data, and premium endpoints (routing, cost projection, forecast, history series, news search, webhook watches with digest tier, enriched directory) for AI agents",
6
6
  "main": "dist/index.js",
@@ -19,13 +19,29 @@
19
19
  "build": "tsc",
20
20
  "start": "node dist/index.js"
21
21
  },
22
- "keywords": ["mcp", "ai", "news", "tensorfeed", "model-context-protocol", "claude", "agents", "x402", "usdc", "base", "model-routing", "agent-payments"],
22
+ "keywords": [
23
+ "mcp",
24
+ "ai",
25
+ "news",
26
+ "tensorfeed",
27
+ "model-context-protocol",
28
+ "claude",
29
+ "agents",
30
+ "x402",
31
+ "usdc",
32
+ "base",
33
+ "model-routing",
34
+ "agent-payments"
35
+ ],
23
36
  "author": "TensorFeed.ai",
24
37
  "license": "MIT",
25
38
  "homepage": "https://tensorfeed.ai/developers",
26
39
  "repository": {
27
40
  "type": "git",
28
- "url": "https://github.com/RipperMercs/tensorfeed"
41
+ "url": "https://github.com/RipperMercs/tensorfeed-mcp"
42
+ },
43
+ "bugs": {
44
+ "url": "https://github.com/RipperMercs/tensorfeed-mcp/issues"
29
45
  },
30
46
  "dependencies": {
31
47
  "@modelcontextprotocol/sdk": "^1.28.0",
package/server.json CHANGED
@@ -2,20 +2,19 @@
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "ai.tensorfeed/mcp-server",
4
4
  "title": "TensorFeed",
5
- "description": "Real-time AI news, status, model pricing, and pay-per-call premium tools (USDC on Base).",
6
- "version": "1.10.0",
5
+ "description": "AI news, model pricing, service status, and machine-payable premium tools. AFTA-certified.",
6
+ "version": "1.11.0",
7
7
  "websiteUrl": "https://tensorfeed.ai/developers/agent-payments",
8
8
  "repository": {
9
- "url": "https://github.com/RipperMercs/tensorfeed",
10
- "source": "github",
11
- "subfolder": "mcp-server"
9
+ "url": "https://github.com/RipperMercs/tensorfeed-mcp",
10
+ "source": "github"
12
11
  },
13
12
  "packages": [
14
13
  {
15
14
  "registryType": "npm",
16
15
  "registryBaseUrl": "https://registry.npmjs.org",
17
16
  "identifier": "@tensorfeed/mcp-server",
18
- "version": "1.10.0",
17
+ "version": "1.11.0",
19
18
  "runtimeHint": "npx",
20
19
  "transport": {
21
20
  "type": "stdio"
@@ -44,7 +43,8 @@
44
43
  "get_model_pricing",
45
44
  "get_ai_today",
46
45
  "get_agent_activity",
47
- "mcp_registry_snapshot"
46
+ "mcp_registry_snapshot",
47
+ "probe_latest"
48
48
  ],
49
49
  "premiumTools": [
50
50
  "premium_routing",
@@ -58,6 +58,7 @@
58
58
  "compare_models",
59
59
  "whats_new",
60
60
  "mcp_registry_series",
61
+ "probe_series",
61
62
  "list_watches",
62
63
  "create_price_watch",
63
64
  "create_status_watch",