@studiometa/productive-mcp 0.8.0 → 0.8.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/dist/http.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { createApp, createRouter, defineEventHandler, setResponseHeader, getHeader, readBody } from "h3";
2
2
  import { parseAuthHeader } from "./auth.js";
3
3
  import { e as executeToolWithCredentials } from "./index-D743zTS1.js";
4
- import { V as VERSION, I as INSTRUCTIONS } from "./version-i2-GF6d1.js";
4
+ import { V as VERSION, I as INSTRUCTIONS } from "./version-C5cU9Q70.js";
5
5
  import { oauthMetadataHandler, registerHandler, authorizeGetHandler, authorizePostHandler, tokenHandler } from "./oauth.js";
6
6
  import { TOOLS } from "./tools.js";
7
7
  function jsonRpcError(code, message, id = null) {
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
4
  import { ListToolsRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, CallToolRequestSchema } from "@modelcontextprotocol/sdk/types.js";
5
- import { V as VERSION, I as INSTRUCTIONS } from "./version-i2-GF6d1.js";
5
+ import { V as VERSION, I as INSTRUCTIONS } from "./version-C5cU9Q70.js";
6
6
  import { getAvailableTools, getAvailablePrompts, handlePrompt, handleToolCall } from "./stdio.js";
7
7
  function createStdioServer() {
8
8
  const server = new Server(
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAoB,KAAK,kBAAkB,EAAE,KAAK,QAAQ,EAAE,MAAM,KAAK,CAAC;AAMlF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;EAYzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;EASvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAY3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D;;GAEG;AACH,eAAO,MAAM,OAAO,aAIgC,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,aAAa,aAKvB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,cAAc,aAKxB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,cAAc,aAGqD,CAAC;AAEjF;;GAEG;AACH,eAAO,MAAM,WAAW,aAG+C,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,cAAc,aAGuD,CAAC;AAEnF;;GAEG;AACH,eAAO,MAAM,WAAW,aAG+C,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,SAAS,aAIuC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAKiE,CAAC;AAE/F;;GAEG;AACH,eAAO,MAAM,SAAS,2BAKiC,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,YAAY,2BAMsC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,YAAY,6BAKtB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,UAAU,aAI4C,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,YAAY,yBAItB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,SAAS,aAAkD,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,UAAU,aAIqB,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,SAAS,aAGgB,CAAC;AAMvC;;GAEG;AACH,eAAO,MAAM,YAAY,uDAGsB,CAAC;AAMhD;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwDpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM5E;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAErE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAE7F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAOnF"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAoB,KAAK,kBAAkB,EAAE,KAAK,QAAQ,EAAE,MAAM,KAAK,CAAC;AAMlF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;EAYzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;EASvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAY3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D;;GAEG;AACH,eAAO,MAAM,OAAO,aAIgC,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,aAAa,aAKvB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,cAAc,aAKxB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,cAAc,aAGqD,CAAC;AAEjF;;GAEG;AACH,eAAO,MAAM,WAAW,aAG+C,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,cAAc,aAGuD,CAAC;AAEnF;;GAEG;AACH,eAAO,MAAM,WAAW,aAG+C,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,SAAS,aAIuC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAKiE,CAAC;AAE/F;;GAEG;AACH,eAAO,MAAM,SAAS,2BAKiC,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,YAAY,2BAMsC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,YAAY,6BAKtB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,UAAU,aAMpB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,YAAY,yBAItB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,SAAS,aAAkD,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,UAAU,aAIqB,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,SAAS,aAGgB,CAAC;AAMvC;;GAEG;AACH,eAAO,MAAM,YAAY,uDAGsB,CAAC;AAMhD;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwDpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM5E;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAErE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAE7F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAOnF"}
package/dist/server.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { toNodeListener } from "h3";
3
3
  import { createServer } from "node:http";
4
4
  import { createHttpApp } from "./http.js";
5
- import { V as VERSION } from "./version-i2-GF6d1.js";
5
+ import { V as VERSION } from "./version-C5cU9Q70.js";
6
6
  const DEFAULT_PORT = 3e3;
7
7
  const DEFAULT_HOST = "0.0.0.0";
8
8
  function startHttpServer(port = DEFAULT_PORT, host = DEFAULT_HOST) {
@@ -13,9 +13,9 @@ function loadInstructions() {
13
13
  }
14
14
  }
15
15
  const INSTRUCTIONS = loadInstructions();
16
- const VERSION = "0.8.0";
16
+ const VERSION = "0.8.1";
17
17
  export {
18
18
  INSTRUCTIONS as I,
19
19
  VERSION as V
20
20
  };
21
- //# sourceMappingURL=version-i2-GF6d1.js.map
21
+ //# sourceMappingURL=version-C5cU9Q70.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-i2-GF6d1.js","sources":["../src/instructions.ts","../src/version.ts"],"sourcesContent":["/**\n * MCP Server Instructions\n *\n * These instructions are sent to Claude Desktop during initialization\n * and used as context/hints for the LLM. This ensures the AI agent\n * knows how to properly use the Productive.io MCP server.\n *\n * The content is derived from skills/SKILL.md (without YAML frontmatter).\n */\n\nimport { readFileSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\n/**\n * Load instructions from SKILL.md file\n * Removes YAML frontmatter (content between --- markers)\n */\nfunction loadInstructions(): string {\n try {\n // In dist/, go up to package root, then to skills/\n const skillPath = join(__dirname, '..', 'skills', 'SKILL.md');\n const content = readFileSync(skillPath, 'utf-8');\n\n // Remove YAML frontmatter (between --- markers at start of file)\n const withoutFrontmatter = content.replace(/^---\\n[\\s\\S]*?\\n---\\n+/, '');\n\n return withoutFrontmatter.trim();\n } catch {\n // Fallback if file not found (shouldn't happen in production)\n return 'Productive.io MCP Server - Use the productive tool with resource and action parameters.';\n }\n}\n\nexport const INSTRUCTIONS = loadInstructions();\n","/**\n * Package version - injected from package.json at build time\n */\ndeclare const __VERSION__: string;\nexport const VERSION = __VERSION__;\n"],"names":["__dirname"],"mappings":";;;AAcA,MAAMA,cAAY,QAAQ,cAAc,YAAY,GAAG,CAAC;AAMxD,SAAS,mBAA2B;AAClC,MAAI;AAEF,UAAM,YAAY,KAAKA,aAAW,MAAM,UAAU,UAAU;AAC5D,UAAM,UAAU,aAAa,WAAW,OAAO;AAG/C,UAAM,qBAAqB,QAAQ,QAAQ,0BAA0B,EAAE;AAEvE,WAAO,mBAAmB,KAAA;AAAA,EAC5B,QAAQ;AAEN,WAAO;AAAA,EACT;AACF;AAEO,MAAM,eAAe,iBAAA;AChCrB,MAAM,UAAU;"}
1
+ {"version":3,"file":"version-C5cU9Q70.js","sources":["../src/instructions.ts","../src/version.ts"],"sourcesContent":["/**\n * MCP Server Instructions\n *\n * These instructions are sent to Claude Desktop during initialization\n * and used as context/hints for the LLM. This ensures the AI agent\n * knows how to properly use the Productive.io MCP server.\n *\n * The content is derived from skills/SKILL.md (without YAML frontmatter).\n */\n\nimport { readFileSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\n/**\n * Load instructions from SKILL.md file\n * Removes YAML frontmatter (content between --- markers)\n */\nfunction loadInstructions(): string {\n try {\n // In dist/, go up to package root, then to skills/\n const skillPath = join(__dirname, '..', 'skills', 'SKILL.md');\n const content = readFileSync(skillPath, 'utf-8');\n\n // Remove YAML frontmatter (between --- markers at start of file)\n const withoutFrontmatter = content.replace(/^---\\n[\\s\\S]*?\\n---\\n+/, '');\n\n return withoutFrontmatter.trim();\n } catch {\n // Fallback if file not found (shouldn't happen in production)\n return 'Productive.io MCP Server - Use the productive tool with resource and action parameters.';\n }\n}\n\nexport const INSTRUCTIONS = loadInstructions();\n","/**\n * Package version - injected from package.json at build time\n */\ndeclare const __VERSION__: string;\nexport const VERSION = __VERSION__;\n"],"names":["__dirname"],"mappings":";;;AAcA,MAAMA,cAAY,QAAQ,cAAc,YAAY,GAAG,CAAC;AAMxD,SAAS,mBAA2B;AAClC,MAAI;AAEF,UAAM,YAAY,KAAKA,aAAW,MAAM,UAAU,UAAU;AAC5D,UAAM,UAAU,aAAa,WAAW,OAAO;AAG/C,UAAM,qBAAqB,QAAQ,QAAQ,0BAA0B,EAAE;AAEvE,WAAO,mBAAmB,KAAA;AAAA,EAC5B,QAAQ;AAEN,WAAO;AAAA,EACT;AACF;AAEO,MAAM,eAAe,iBAAA;AChCrB,MAAM,UAAU;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studiometa/productive-mcp",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
4
4
  "description": "MCP server for Productive.io API - Model Context Protocol integration for Claude Desktop",
5
5
  "keywords": [
6
6
  "ai",
@@ -88,7 +88,7 @@
88
88
  },
89
89
  "dependencies": {
90
90
  "@modelcontextprotocol/sdk": "^1.0.4",
91
- "@studiometa/productive-cli": "0.8.0",
91
+ "@studiometa/productive-cli": "0.8.1",
92
92
  "h3": "^1.15.1",
93
93
  "zod": "4.3.6"
94
94
  },
package/skills/SKILL.md CHANGED
@@ -46,17 +46,17 @@ Returns filters, fields, includes, and examples for that resource.
46
46
 
47
47
  ## Common Parameters
48
48
 
49
- | Parameter | Type | Description |
50
- | ---------- | ------- | ------------------------------------------------------ |
51
- | `resource` | string | **Required**. Resource type (see table above) |
52
- | `action` | string | **Required**. Action to perform |
53
- | `id` | string | Resource ID (for `get`, `update`, `stop`) |
54
- | `filter` | object | Filter criteria for `list` actions |
55
- | `page` | number | Page number (default: 1) |
56
- | `per_page` | number | Items per page (default: 20, max: 200) |
57
- | `compact` | boolean | Compact output (default: true for list, false for get) |
58
- | `include` | array | Related resources to include |
59
- | `query` | string | Text search on name/title fields |
49
+ | Parameter | Type | Description |
50
+ | ---------- | ------- | ---------------------------------------------------------------------------------------- |
51
+ | `resource` | string | **Required**. Resource type (see table above) |
52
+ | `action` | string | **Required**. Action to perform |
53
+ | `id` | string | Resource ID (for `get`, `update`, `stop`) |
54
+ | `filter` | object | Filter criteria for `list` actions |
55
+ | `page` | number | Page number (default: 1) |
56
+ | `per_page` | number | Items per page (default: 20, max: 200) |
57
+ | `compact` | boolean | Compact output (default: true for list, false for get) |
58
+ | `include` | array | Related resources to include |
59
+ | `query` | string | Text search (behavior varies by resource - may search related fields like project names) |
60
60
 
61
61
  ## Examples by Resource
62
62
 
@@ -128,8 +128,9 @@ Returns filters, fields, includes, and examples for that resource.
128
128
  "include": ["comments", "assignee"]
129
129
  }
130
130
 
131
- // Search tasks
131
+ // Search tasks by title or project name
132
132
  { "resource": "tasks", "action": "list", "query": "bug fix" }
133
+ { "resource": "tasks", "action": "list", "query": "crosscall" } // Also matches project names
133
134
 
134
135
  // Create task
135
136
  {
@@ -326,5 +327,5 @@ Key points:
326
327
  1. **Use `action: "help"`** - Get resource documentation before using unfamiliar resources
327
328
  2. **Use `compact: false`** for detailed single-item views
328
329
  3. **Use `include`** to reduce round-trips when you need related data
329
- 4. **Use `query`** for text search instead of fetching all and filtering
330
+ 4. **Use `query`** for text search - behavior varies by resource but may include related fields (e.g., tasks query may match project names)
330
331
  5. **Check `people.me`** first to get the current user's ID for filters