attio-mcp 1.3.0 → 1.3.5

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
@@ -19,6 +19,37 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
19
19
 
20
20
  ### Deprecated
21
21
 
22
+ ## [1.3.5] - 2025-12-02
23
+
24
+ **Self-host your own remote MCP server** - Use Attio from Claude.ai, ChatGPT, or any remote MCP client without relying on third-party platforms.
25
+
26
+ This release addresses [Issue #928](https://github.com/kesslerio/attio-mcp-server/issues/928) by providing a **free, self-hosted alternative to Smithery** for remote OAuth MCP deployment. Deploy once to Cloudflare Workers (free tier) and access your Attio data from anywhere.
27
+
28
+ ### Why This Matters
29
+
30
+ - **No third-party dependencies** - Your credentials stay on infrastructure you control
31
+ - **Works with any remote MCP client** - Claude.ai, ChatGPT, custom integrations
32
+ - **Completely free** - Cloudflare Workers free tier is more than sufficient
33
+ - **Global edge deployment** - Low latency from anywhere in the world
34
+
35
+ ### Added
36
+
37
+ - **Self-hosted Remote MCP Server** ([docs](https://github.com/kesslerio/attio-mcp-server/tree/main/examples/cloudflare-mcp-server))
38
+ - Full MCP protocol over HTTP - all 40+ Attio tools work remotely
39
+ - OAuth 2.1 with PKCE for secure authentication
40
+ - Encrypted token storage in Cloudflare Workers KV
41
+ - Dynamic client registration for Claude.ai and ChatGPT
42
+ - One-time deploy, works forever
43
+
44
+ - **`@attio-mcp/core` package** - Edge-compatible core library for custom deployments
45
+
46
+ ### Security
47
+
48
+ - **OAuth security hardening**
49
+ - Exact hostname validation prevents redirect attacks
50
+ - One-time authorization codes (deleted after use)
51
+ - Session token separation from auth codes
52
+
22
53
  ## [1.3.0] - 2025-12-02
23
54
 
24
55
  OAuth access token support - enables delegated authentication for third-party integrations and Claude Desktop users who prefer OAuth over API keys.
@@ -42,9 +42,18 @@ export declare function createServer(context?: ServerContext): Server<{
42
42
  method: string;
43
43
  params?: {
44
44
  [x: string]: unknown;
45
+ task?: {
46
+ [x: string]: unknown;
47
+ ttl?: number | null | undefined;
48
+ pollInterval?: number | undefined;
49
+ } | undefined;
45
50
  _meta?: {
46
51
  [x: string]: unknown;
47
52
  progressToken?: string | number | undefined;
53
+ "io.modelcontextprotocol/related-task"?: {
54
+ [x: string]: unknown;
55
+ taskId: string;
56
+ } | undefined;
48
57
  } | undefined;
49
58
  } | undefined;
50
59
  }, {
@@ -53,12 +62,20 @@ export declare function createServer(context?: ServerContext): Server<{
53
62
  [x: string]: unknown;
54
63
  _meta?: {
55
64
  [x: string]: unknown;
65
+ "io.modelcontextprotocol/related-task"?: {
66
+ [x: string]: unknown;
67
+ taskId: string;
68
+ } | undefined;
56
69
  } | undefined;
57
70
  } | undefined;
58
71
  }, {
59
72
  [x: string]: unknown;
60
73
  _meta?: {
61
74
  [x: string]: unknown;
75
+ "io.modelcontextprotocol/related-task"?: {
76
+ [x: string]: unknown;
77
+ taskId: string;
78
+ } | undefined;
62
79
  } | undefined;
63
80
  }>;
64
81
  //# sourceMappingURL=createServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createServer.d.ts","sourceRoot":"","sources":["../../src/server/createServer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;EAYvB,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;GA0EnD"}
1
+ {"version":3,"file":"createServer.d.ts","sourceRoot":"","sources":["../../src/server/createServer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;EAYvB,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EnD"}
@@ -40,9 +40,18 @@ export default function createServer({ config, }: {
40
40
  method: string;
41
41
  params?: {
42
42
  [x: string]: unknown;
43
+ task?: {
44
+ [x: string]: unknown;
45
+ ttl?: number | null | undefined;
46
+ pollInterval?: number | undefined;
47
+ } | undefined;
43
48
  _meta?: {
44
49
  [x: string]: unknown;
45
50
  progressToken?: string | number | undefined;
51
+ "io.modelcontextprotocol/related-task"?: {
52
+ [x: string]: unknown;
53
+ taskId: string;
54
+ } | undefined;
46
55
  } | undefined;
47
56
  } | undefined;
48
57
  }, {
@@ -51,12 +60,20 @@ export default function createServer({ config, }: {
51
60
  [x: string]: unknown;
52
61
  _meta?: {
53
62
  [x: string]: unknown;
63
+ "io.modelcontextprotocol/related-task"?: {
64
+ [x: string]: unknown;
65
+ taskId: string;
66
+ } | undefined;
54
67
  } | undefined;
55
68
  } | undefined;
56
69
  }, {
57
70
  [x: string]: unknown;
58
71
  _meta?: {
59
72
  [x: string]: unknown;
73
+ "io.modelcontextprotocol/related-task"?: {
74
+ [x: string]: unknown;
75
+ taskId: string;
76
+ } | undefined;
60
77
  } | undefined;
61
78
  }>;
62
79
  //# sourceMappingURL=smithery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"smithery.d.ts","sourceRoot":"","sources":["../src/smithery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;EAmBvB,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,MAAM,GACP,EAAE;IACD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;CACtC;;;;;;;;;;;;;;;;;;;;;;GAgFA"}
1
+ {"version":3,"file":"smithery.d.ts","sourceRoot":"","sources":["../src/smithery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;EAmBvB,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,MAAM,GACP,EAAE;IACD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;CACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFA"}
package/package.json CHANGED
@@ -1,12 +1,15 @@
1
1
  {
2
2
  "name": "attio-mcp",
3
- "version": "1.3.0",
3
+ "version": "1.3.5",
4
4
  "description": "AI-powered access to Attio CRM. Manage contacts, companies, deals, tasks, and notes. Search records, update pipelines, and automate workflows for sales and GTM teams.",
5
5
  "mcpName": "io.github.kesslerio/attio-mcp-server",
6
6
  "main": "dist/smithery.js",
7
7
  "module": "src/smithery.ts",
8
8
  "type": "module",
9
9
  "access": "public",
10
+ "workspaces": [
11
+ "packages/*"
12
+ ],
10
13
  "bin": {
11
14
  "attio-mcp": "dist/cli.js",
12
15
  "attio-discover": "dist/cli/discover.js"