opedd-mcp 0.6.5 → 0.6.7

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/README.md CHANGED
@@ -18,7 +18,7 @@
18
18
  <p align="center">
19
19
  <a href="cursor://anysphere.cursor-deeplink/mcp/install?name=opedd&config=eyJjb21tYW5kIjoibnB4IC15IG9wZWRkLW1jcCJ9"><img src="https://img.shields.io/badge/Add%20to-Cursor-000?logo=cursor" alt="Add to Cursor"></a>
20
20
  <a href="https://insiders.vscode.dev/redirect/mcp/install?name=opedd&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opedd-mcp%22%5D%7D"><img src="https://img.shields.io/badge/Install%20in-VS%20Code-007ACC?logo=visualstudiocode" alt="Install in VS Code"></a>
21
- <a href="https://opedd.com/for-ai-agents"><img src="https://img.shields.io/badge/Docs-opedd.com-111" alt="Docs"></a>
21
+ <a href="https://opedd.com/for-ai-agents?utm_source=github&utm_medium=readme&utm_campaign=mcp"><img src="https://img.shields.io/badge/Docs-opedd.com-111" alt="Docs"></a>
22
22
  </p>
23
23
 
24
24
  Lets AI assistants (Claude Desktop, Cursor, Windsurf, or any MCP-compatible host) discover, purchase, and verify content licenses autonomously — mid-conversation, without opening a browser. Every license is registered on-chain (Tempo blockchain) with cryptographic proof.
@@ -31,7 +31,54 @@ Lets AI assistants (Claude Desktop, Cursor, Windsurf, or any MCP-compatible host
31
31
  npx opedd-mcp
32
32
  ```
33
33
 
34
- Then add it to your MCP host (see [Claude Desktop / Cursor / Windsurf setup](#claude-desktop-setup) below). Discovery + verification tools work with no configuration; purchasing and content retrieval use optional API keys from [opedd.com](https://opedd.com).
34
+ Then add it to your MCP host (see [Claude Desktop / Cursor / Windsurf setup](#claude-desktop-setup) below). Discovery + verification tools work with no configuration; purchasing and content retrieval use optional API keys from [opedd.com](https://opedd.com?utm_source=github&utm_medium=readme&utm_campaign=mcp).
35
+
36
+ ## Hosted endpoint — no install (mcp.opedd.com)
37
+
38
+ Prefer zero-install? The same 17 tools are served hosted at **`https://mcp.opedd.com/mcp`** (Streamable HTTP). Auth is an `Authorization: Bearer` header with any Opedd key — public discovery tools need no auth at all.
39
+
40
+ **Claude Messages API** (production agents):
41
+
42
+ ```json
43
+ {
44
+ "mcp_servers": [{
45
+ "type": "url",
46
+ "url": "https://mcp.opedd.com/mcp",
47
+ "name": "opedd",
48
+ "authorization_token": "opedd_buyer_live_..."
49
+ }]
50
+ }
51
+ ```
52
+
53
+ **OpenAI Responses API**:
54
+
55
+ ```json
56
+ {
57
+ "tools": [{
58
+ "type": "mcp",
59
+ "server_label": "opedd",
60
+ "server_url": "https://mcp.opedd.com/mcp",
61
+ "authorization": "opedd_buyer_live_..."
62
+ }]
63
+ }
64
+ ```
65
+
66
+ **claude.ai / Claude Desktop custom connector** (all plans): Settings → Connectors → *Add custom connector* → URL `https://mcp.opedd.com/mcp`; add a `Authorization: Bearer <your key>` request header for the credentialed tools.
67
+
68
+ **Cursor** (`.cursor/mcp.json`):
69
+
70
+ ```json
71
+ {
72
+ "mcpServers": {
73
+ "opedd": {
74
+ "url": "https://mcp.opedd.com/mcp",
75
+ "headers": { "Authorization": "Bearer ${env:OPEDD_KEY}" }
76
+ }
77
+ }
78
+ }
79
+ ```
80
+
81
+ Key routing: `opedd_pub_*` → publisher tools · `opedd_buyer_*` → content retrieval · `ent_*` → bulk feeds · buyer-portal JWT → audit/compliance/EU-AI-Act tools. Your key is forwarded per request and never stored by the gateway.
35
82
 
36
83
  ## What it does
37
84
 
@@ -232,9 +279,9 @@ Opedd is the **licensed content delivery layer** for AI — not just a licensing
232
279
 
233
280
  ## Learn more
234
281
 
235
- - [Opedd for AI Agents](https://opedd.com/for-ai-agents) — full documentation, code examples, endpoint reference
282
+ - [Opedd for AI Agents](https://opedd.com/for-ai-agents?utm_source=github&utm_medium=readme&utm_campaign=mcp) — full documentation, code examples, endpoint reference
236
283
  - [API Docs](https://docs.opedd.com) — OpenAPI spec with agent endpoints
237
- - [Opedd Registry](https://opedd.com/registry) — browse on-chain license proofs
284
+ - [Opedd Registry](https://opedd.com/registry?utm_source=github&utm_medium=readme&utm_campaign=mcp) — browse on-chain license proofs
238
285
 
239
286
  ## License
240
287
 
@@ -5,7 +5,7 @@ export declare function isTelemetryEnabled(): boolean;
5
5
  * PII, keys, or content by construction. Pure; exported so a test can assert
6
6
  * the privacy invariant directly.
7
7
  */
8
- export declare function toolCallProperties(tool: string, durationMs: number, ok: boolean): Record<string, string | number | boolean>;
8
+ export declare function toolCallProperties(tool: string, durationMs: number, ok: boolean, extra?: Record<string, string | number | boolean>): Record<string, string | number | boolean>;
9
9
  export declare function initTelemetry(): void;
10
- export declare function captureToolCall(tool: string, durationMs: number, ok: boolean): void;
10
+ export declare function captureToolCall(tool: string, durationMs: number, ok: boolean, extra?: Record<string, string | number | boolean>): void;
11
11
  export declare function shutdownTelemetry(): Promise<void>;
package/dist/telemetry.js CHANGED
@@ -36,12 +36,13 @@ export function isTelemetryEnabled() {
36
36
  * PII, keys, or content by construction. Pure; exported so a test can assert
37
37
  * the privacy invariant directly.
38
38
  */
39
- export function toolCallProperties(tool, durationMs, ok) {
39
+ export function toolCallProperties(tool, durationMs, ok, extra) {
40
40
  return {
41
41
  tool,
42
42
  duration_ms: Math.round(durationMs),
43
43
  ok,
44
44
  server_version: SERVER_VERSION,
45
+ ...extra,
45
46
  };
46
47
  }
47
48
  let client = null;
@@ -63,14 +64,18 @@ export function initTelemetry() {
63
64
  client = null;
64
65
  }
65
66
  }
66
- export function captureToolCall(tool, durationMs, ok) {
67
+ export function captureToolCall(tool, durationMs, ok,
68
+ // Extra event properties (still no params/PII/keys by construction).
69
+ // The hosted gateway uses this to tag internal probes ({ internal: true })
70
+ // so channel metrics can be filtered to genuinely external callers.
71
+ extra) {
67
72
  if (!client)
68
73
  return;
69
74
  try {
70
75
  client.capture({
71
76
  distinctId: sessionId,
72
77
  event: "mcp_tool_call",
73
- properties: toolCallProperties(tool, durationMs, ok),
78
+ properties: toolCallProperties(tool, durationMs, ok, extra),
74
79
  });
75
80
  }
76
81
  catch {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "opedd-mcp",
3
- "version": "0.6.5",
4
- "description": "Licensed, rights-cleared content for AI agents — verifiable license keys, on-chain proof, and EU AI Act attestation. The MCP alternative to unlicensed scraping for RAG and AI search.",
3
+ "version": "0.6.7",
4
+ "description": "Licensed, rights-cleared content for AI agents \u2014 verifiable license keys, on-chain proof, and EU AI Act attestation. The MCP alternative to unlicensed scraping for RAG and AI search.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "mcpName": "com.opedd/opedd-mcp",
@@ -56,5 +56,8 @@
56
56
  "files": [
57
57
  "dist"
58
58
  ],
59
- "types": "dist/index.d.ts"
59
+ "types": "dist/index.d.ts",
60
+ "overrides": {
61
+ "esbuild": "^0.28.1"
62
+ }
60
63
  }