@kansei-link/mcp-server 0.1.1 → 0.2.0

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/db/schema.js CHANGED
@@ -42,9 +42,21 @@ export function initializeDb(db) {
42
42
  last_updated TEXT DEFAULT (datetime('now'))
43
43
  );
44
44
 
45
+ CREATE TABLE IF NOT EXISTS service_changelog (
46
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
47
+ service_id TEXT NOT NULL REFERENCES services(id),
48
+ change_date TEXT NOT NULL,
49
+ change_type TEXT NOT NULL,
50
+ summary TEXT NOT NULL,
51
+ details TEXT,
52
+ created_at TEXT DEFAULT (datetime('now'))
53
+ );
54
+
45
55
  CREATE INDEX IF NOT EXISTS idx_outcomes_service ON outcomes(service_id);
46
56
  CREATE INDEX IF NOT EXISTS idx_outcomes_created ON outcomes(created_at);
47
57
  CREATE INDEX IF NOT EXISTS idx_services_category ON services(category);
58
+ CREATE INDEX IF NOT EXISTS idx_changelog_service ON service_changelog(service_id);
59
+ CREATE INDEX IF NOT EXISTS idx_changelog_date ON service_changelog(change_date);
48
60
  `);
49
61
  // FTS5 virtual table for full-text search on services
50
62
  // Check if it already exists first (CREATE VIRTUAL TABLE IF NOT EXISTS not supported in all SQLite builds)
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,EAAqB;IAChD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CP,CAAC,CAAC;IAEH,sDAAsD;IACtD,2GAA2G;IAC3G,MAAM,SAAS,GAAG,EAAE;SACjB,OAAO,CACN,2EAA2E,CAC5E;SACA,GAAG,EAAE,CAAC;IAET,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,EAAE,CAAC,IAAI,CAAC;;;;;KAKP,CAAC,CAAC;QAEH,+BAA+B;QAC/B,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;KAiBP,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,EAAqB;IAChD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DP,CAAC,CAAC;IAEH,sDAAsD;IACtD,2GAA2G;IAC3G,MAAM,SAAS,GAAG,EAAE;SACjB,OAAO,CACN,2EAA2E,CAC5E;SACA,GAAG,EAAE,CAAC;IAET,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,EAAE,CAAC,IAAI,CAAC;;;;;KAKP,CAAC,CAAC;QAEH,+BAA+B;QAC/B,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;KAiBP,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
package/dist/db/seed.js CHANGED
@@ -14,6 +14,48 @@ function loadJson(filename) {
14
14
  export function seedDatabase(db) {
15
15
  const services = loadJson("services-seed.json");
16
16
  const recipes = loadJson("recipes-seed.json");
17
+ const changelogEntries = [
18
+ // freee
19
+ { service_id: "freee", change_date: "2026-03-27", change_type: "feature", summary: "Remote MCP server version added", details: "freee now offers a hosted MCP endpoint in addition to the local npx runner, reducing setup friction for cloud-native agents." },
20
+ { service_id: "freee", change_date: "2026-03-15", change_type: "feature", summary: "Invoice API v2 endpoint supported", details: "Added support for the new freee Invoice API v2 with line-item tax rounding options and PDF attachment." },
21
+ { service_id: "freee", change_date: "2026-02-28", change_type: "fix", summary: "Bank sync retry logic improved", details: "Fixed intermittent 429 errors during bank account synchronization by adding exponential back-off." },
22
+ // smarthr
23
+ { service_id: "smarthr", change_date: "2026-03-20", change_type: "feature", summary: "Employee bulk import tool added", details: "New bulk_import_employees tool accepts CSV payload and creates multiple employee records in a single call." },
24
+ { service_id: "smarthr", change_date: "2026-03-05", change_type: "fix", summary: "Social insurance PDF generation fix", details: "Resolved issue where generated social insurance documents had incorrect fiscal year headers." },
25
+ { service_id: "smarthr", change_date: "2026-02-18", change_type: "deprecation", summary: "Legacy employee list endpoint deprecated", details: "The v1 list_employees endpoint will be removed on 2026-06-01. Use list_employees_v2 instead." },
26
+ // chatwork
27
+ { service_id: "chatwork", change_date: "2026-03-10", change_type: "feature", summary: "Thread reply support added", details: "Agents can now reply to specific messages in a thread using the new reply_to_message tool." },
28
+ { service_id: "chatwork", change_date: "2026-02-20", change_type: "feature", summary: "File upload size limit increased to 50 MB" },
29
+ { service_id: "chatwork", change_date: "2026-02-05", change_type: "fix", summary: "Room member list pagination corrected" },
30
+ // sansan
31
+ { service_id: "sansan", change_date: "2026-03-22", change_type: "feature", summary: "Business card OCR accuracy improved to 98%", details: "Upgraded OCR model for Japanese vertical text and double-byte characters." },
32
+ { service_id: "sansan", change_date: "2026-03-01", change_type: "breaking", summary: "Authentication switched to OAuth 2.0", details: "API key auth removed. All agents must use OAuth 2.0 client credentials flow. See migration guide." },
33
+ // moneyforward
34
+ { service_id: "moneyforward", change_date: "2026-03-18", change_type: "feature", summary: "AI expense categorization tool added", details: "New auto_categorize_expenses tool uses ML to classify transactions into accounts." },
35
+ { service_id: "moneyforward", change_date: "2026-03-02", change_type: "fix", summary: "Payroll calculation rounding error fixed" },
36
+ { service_id: "moneyforward", change_date: "2026-02-10", change_type: "feature", summary: "Multi-currency journal entry support" },
37
+ // backlog
38
+ { service_id: "backlog", change_date: "2026-03-25", change_type: "feature", summary: "Bulk issue update tool added", details: "Update status, assignee, or priority for multiple issues in a single API call." },
39
+ { service_id: "backlog", change_date: "2026-03-08", change_type: "fix", summary: "Wiki markdown rendering fix for tables" },
40
+ // lineworks
41
+ { service_id: "lineworks", change_date: "2026-03-12", change_type: "feature", summary: "Calendar event creation tool added", details: "Agents can now create, update, and delete LINE WORKS calendar events." },
42
+ { service_id: "lineworks", change_date: "2026-02-25", change_type: "breaking", summary: "Bot API v1 removed", details: "Bot API v1 endpoints no longer respond. Migrate to Bot API v2." },
43
+ // kingoftime
44
+ { service_id: "kingoftime", change_date: "2026-03-15", change_type: "feature", summary: "Overtime alert notification tool added" },
45
+ { service_id: "kingoftime", change_date: "2026-02-28", change_type: "fix", summary: "Shift swap approval workflow fix", details: "Fixed edge case where overlapping shift swaps could both be approved." },
46
+ // base-ec
47
+ { service_id: "base-ec", change_date: "2026-03-20", change_type: "feature", summary: "Inventory webhook support added" },
48
+ { service_id: "base-ec", change_date: "2026-03-05", change_type: "fix", summary: "Order status filter returning stale data fixed" },
49
+ // stores-jp
50
+ { service_id: "stores-jp", change_date: "2026-03-18", change_type: "feature", summary: "POS transaction sync tool added" },
51
+ { service_id: "stores-jp", change_date: "2026-02-22", change_type: "feature", summary: "Reservation slot management tool added" },
52
+ // hubspot-jp
53
+ { service_id: "hubspot-jp", change_date: "2026-03-28", change_type: "feature", summary: "Deal pipeline stage automation tool added" },
54
+ { service_id: "hubspot-jp", change_date: "2026-03-10", change_type: "fix", summary: "Contact merge duplicate detection improved" },
55
+ // jooto
56
+ { service_id: "jooto", change_date: "2026-03-14", change_type: "feature", summary: "Board template cloning tool added" },
57
+ { service_id: "jooto", change_date: "2026-02-15", change_type: "fix", summary: "Label color sync issue resolved" },
58
+ ];
17
59
  const insertService = db.prepare(`
18
60
  INSERT OR IGNORE INTO services (id, name, namespace, description, category, tags, mcp_endpoint, trust_score)
19
61
  VALUES (@id, @name, @namespace, @description, @category, @tags, @mcp_endpoint, @trust_score)
@@ -24,6 +66,10 @@ export function seedDatabase(db) {
24
66
  const insertRecipe = db.prepare(`
25
67
  INSERT OR IGNORE INTO recipes (id, goal, description, steps, required_services)
26
68
  VALUES (@id, @goal, @description, @steps, @required_services)
69
+ `);
70
+ const insertChangelog = db.prepare(`
71
+ INSERT OR IGNORE INTO service_changelog (service_id, change_date, change_type, summary, details)
72
+ VALUES (@service_id, @change_date, @change_type, @summary, @details)
27
73
  `);
28
74
  const seedAll = db.transaction(() => {
29
75
  for (const service of services) {
@@ -37,6 +83,15 @@ export function seedDatabase(db) {
37
83
  required_services: JSON.stringify(recipe.required_services),
38
84
  });
39
85
  }
86
+ for (const entry of changelogEntries) {
87
+ insertChangelog.run({
88
+ service_id: entry.service_id,
89
+ change_date: entry.change_date,
90
+ change_type: entry.change_type,
91
+ summary: entry.summary,
92
+ details: entry.details ?? null,
93
+ });
94
+ }
40
95
  });
41
96
  seedAll();
42
97
  // Rebuild FTS index
@@ -1 +1 @@
1
- {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/db/seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAqB/D,SAAS,QAAQ,CAAI,QAAgB;IACnC,uDAAuD;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAA4B;IACvD,MAAM,QAAQ,GAAG,QAAQ,CAAgB,oBAAoB,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,QAAQ,CAAe,mBAAmB,CAAC,CAAC;IAE5D,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAGhC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC;;GAE9B,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAG/B,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAClC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3B,WAAW,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,YAAY,CAAC,GAAG,CAAC;gBACf,GAAG,MAAM;gBACT,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;gBACnC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC;aAC5D,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;IAEV,oBAAoB;IACpB,EAAE,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IAErE,MAAM,YAAY,GAAG,EAAE;SACpB,OAAO,CAAC,wCAAwC,CAAC;SACjD,GAAG,EAAuB,CAAC;IAC9B,MAAM,WAAW,GAAG,EAAE;SACnB,OAAO,CAAC,uCAAuC,CAAC;SAChD,GAAG,EAAuB,CAAC;IAE9B,OAAO,CAAC,GAAG,CACT,UAAU,YAAY,CAAC,KAAK,iBAAiB,WAAW,CAAC,KAAK,WAAW,CAC1E,CAAC;AACJ,CAAC;AAED,eAAe;AACf,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;AACnB,YAAY,CAAC,EAAE,CAAC,CAAC;AACjB,YAAY,CAAC,EAAE,CAAC,CAAC;AACjB,EAAE,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/db/seed.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -5,6 +5,8 @@ import { register as registerSearchServices } from "./tools/search-services.js";
5
5
  import { register as registerGetRecipe } from "./tools/get-recipe.js";
6
6
  import { register as registerReportOutcome } from "./tools/report-outcome.js";
7
7
  import { register as registerGetInsights } from "./tools/get-insights.js";
8
+ import { register as registerFindCombinations } from "./tools/find-combinations.js";
9
+ import { register as registerCheckUpdates } from "./tools/check-updates.js";
8
10
  export function createServer() {
9
11
  const server = new McpServer({
10
12
  name: "kansei-link",
@@ -18,6 +20,8 @@ export function createServer() {
18
20
  registerGetRecipe(server, db);
19
21
  registerReportOutcome(server, db);
20
22
  registerGetInsights(server, db);
23
+ registerFindCombinations(server, db);
24
+ registerCheckUpdates(server, db);
21
25
  return server;
22
26
  }
23
27
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,QAAQ,IAAI,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,QAAQ,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE1E,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,CAAC;IAEjB,qBAAqB;IACrB,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnC,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClC,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEhC,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,QAAQ,IAAI,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,QAAQ,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,QAAQ,IAAI,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAE5E,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,CAAC;IAEjB,qBAAqB;IACrB,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnC,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClC,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrC,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type Database from "better-sqlite3";
3
+ export declare function register(server: McpServer, db: Database.Database): void;
@@ -0,0 +1,81 @@
1
+ import { z } from "zod";
2
+ export function register(server, db) {
3
+ server.registerTool("check_updates", {
4
+ title: "Check Updates",
5
+ description: "Check if an MCP service has changed recently. Returns changelog information including new features, breaking changes, fixes, and deprecations.",
6
+ inputSchema: z.object({
7
+ service: z
8
+ .string()
9
+ .describe("Service name or ID to look up (e.g., 'freee', 'smarthr', 'chatwork')"),
10
+ since_days: z
11
+ .number()
12
+ .optional()
13
+ .default(30)
14
+ .describe("How many days back to look for changes (default: 30)"),
15
+ }),
16
+ annotations: {
17
+ readOnlyHint: true,
18
+ openWorldHint: false,
19
+ },
20
+ }, async ({ service, since_days }) => {
21
+ const result = checkUpdates(db, service, since_days ?? 30);
22
+ return {
23
+ content: [
24
+ {
25
+ type: "text",
26
+ text: JSON.stringify(result, null, 2),
27
+ },
28
+ ],
29
+ };
30
+ });
31
+ }
32
+ function checkUpdates(db, service, sinceDays) {
33
+ // Fuzzy-match service by name or ID
34
+ const pattern = `%${service}%`;
35
+ const matchedService = db
36
+ .prepare(`SELECT id, name, namespace, description, category, mcp_endpoint, trust_score
37
+ FROM services
38
+ WHERE id LIKE ? OR name LIKE ?
39
+ LIMIT 1`)
40
+ .get(pattern, pattern);
41
+ if (!matchedService) {
42
+ return {
43
+ error: "service_not_found",
44
+ message: `No service matching '${service}' was found.`,
45
+ suggestion: "Use search_services to find available services, then retry with the exact service ID.",
46
+ };
47
+ }
48
+ // Calculate the cutoff date
49
+ const cutoffDate = new Date();
50
+ cutoffDate.setDate(cutoffDate.getDate() - sinceDays);
51
+ const cutoffIso = cutoffDate.toISOString().split("T")[0]; // YYYY-MM-DD
52
+ const changes = db
53
+ .prepare(`SELECT id, service_id, change_date, change_type, summary, details
54
+ FROM service_changelog
55
+ WHERE service_id = ? AND change_date >= ?
56
+ ORDER BY change_date DESC`)
57
+ .all(matchedService.id, cutoffIso);
58
+ const hasBreakingChanges = changes.some((c) => c.change_type === "breaking");
59
+ return {
60
+ service: {
61
+ id: matchedService.id,
62
+ name: matchedService.name,
63
+ namespace: matchedService.namespace,
64
+ category: matchedService.category,
65
+ mcp_endpoint: matchedService.mcp_endpoint,
66
+ },
67
+ period: {
68
+ since_days: sinceDays,
69
+ cutoff_date: cutoffIso,
70
+ },
71
+ has_breaking_changes: hasBreakingChanges,
72
+ total_changes: changes.length,
73
+ changes: changes.map((c) => ({
74
+ date: c.change_date,
75
+ type: c.change_type,
76
+ summary: c.summary,
77
+ ...(c.details ? { details: c.details } : {}),
78
+ })),
79
+ };
80
+ }
81
+ //# sourceMappingURL=check-updates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-updates.js","sourceRoot":"","sources":["../../src/tools/check-updates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type Database from "better-sqlite3";
3
+ export declare function register(server: McpServer, db: Database.Database): void;
4
+ export declare function findCombinations(db: Database.Database, service: string): object[];
@@ -0,0 +1,105 @@
1
+ import { z } from "zod";
2
+ export function register(server, db) {
3
+ server.registerTool("find_combinations", {
4
+ title: "Find Combinations",
5
+ description: "Reverse recipe lookup — given a service or MCP name, find all recipes that include it and show what other services it can be combined with.",
6
+ inputSchema: z.object({
7
+ service: z
8
+ .string()
9
+ .describe("The service name or ID to look up (e.g., 'freee', 'freee-mcp', 'chatwork')"),
10
+ }),
11
+ annotations: {
12
+ readOnlyHint: true,
13
+ openWorldHint: false,
14
+ },
15
+ }, async ({ service }) => {
16
+ const results = findCombinations(db, service);
17
+ return {
18
+ content: [
19
+ {
20
+ type: "text",
21
+ text: JSON.stringify(results, null, 2),
22
+ },
23
+ ],
24
+ };
25
+ });
26
+ }
27
+ export function findCombinations(db, service) {
28
+ const pattern = `%${service}%`;
29
+ // Find all recipes where the service appears in steps or required_services
30
+ const recipes = db
31
+ .prepare(`SELECT * FROM recipes
32
+ WHERE steps LIKE ? OR required_services LIKE ?`)
33
+ .all(pattern, pattern);
34
+ if (recipes.length === 0) {
35
+ return [];
36
+ }
37
+ // Also try to resolve the service against the services table for richer matching
38
+ const matchedServices = db
39
+ .prepare(`SELECT id, name, namespace FROM services
40
+ WHERE id LIKE ? OR name LIKE ?`)
41
+ .all(pattern, pattern);
42
+ const matchedIds = new Set(matchedServices.map((s) => s.id));
43
+ // Cache for service lookups
44
+ const serviceCache = new Map();
45
+ const getService = (id) => {
46
+ if (serviceCache.has(id))
47
+ return serviceCache.get(id);
48
+ const svc = db
49
+ .prepare("SELECT id, name, namespace FROM services WHERE id = ?")
50
+ .get(id);
51
+ if (svc)
52
+ serviceCache.set(id, svc);
53
+ return svc ?? null;
54
+ };
55
+ // Pre-populate cache with matched services
56
+ for (const svc of matchedServices) {
57
+ serviceCache.set(svc.id, svc);
58
+ }
59
+ const results = [];
60
+ for (const recipe of recipes) {
61
+ const steps = JSON.parse(recipe.steps);
62
+ const requiredServices = JSON.parse(recipe.required_services);
63
+ // Find which steps involve the queried service (by ID match or text match)
64
+ const matchingSteps = steps.filter((step) => {
65
+ if (matchedIds.has(step.service_id))
66
+ return true;
67
+ if (step.service_id.toLowerCase().includes(service.toLowerCase()))
68
+ return true;
69
+ return false;
70
+ });
71
+ // If no steps match, skip (the LIKE matched on something unrelated)
72
+ if (matchingSteps.length === 0)
73
+ continue;
74
+ // Build the role description for the matched service
75
+ const roles = matchingSteps.map((step) => ({
76
+ step_order: step.order,
77
+ action: step.action,
78
+ service_id: step.service_id,
79
+ service_name: getService(step.service_id)?.name ?? step.service_id,
80
+ }));
81
+ // Find the other services in this recipe (the combinations)
82
+ const matchingServiceIds = new Set(matchingSteps.map((s) => s.service_id));
83
+ const otherServices = requiredServices
84
+ .filter((id) => !matchingServiceIds.has(id))
85
+ .map((id) => {
86
+ const svc = getService(id);
87
+ return {
88
+ id,
89
+ name: svc?.name ?? id,
90
+ namespace: svc?.namespace ?? null,
91
+ };
92
+ });
93
+ results.push({
94
+ recipe_id: recipe.id,
95
+ recipe_name: recipe.goal,
96
+ description: recipe.description,
97
+ role_in_recipe: roles,
98
+ combines_with: otherServices,
99
+ total_services_needed: requiredServices.length,
100
+ coverage_hint: `You have 1 of ${requiredServices.length} services needed`,
101
+ });
102
+ }
103
+ return results;
104
+ }
105
+ //# sourceMappingURL=find-combinations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-combinations.js","sourceRoot":"","sources":["../../src/tools/find-combinations.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kansei-link/mcp-server",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "MCP intelligence layer for discovering and orchestrating Japanese SaaS MCP tools",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",