@zelklab/seevo-mcp-server 0.1.5 → 0.1.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.
Files changed (2) hide show
  1. package/dist/index.js +46 -17
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2,7 +2,6 @@
2
2
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
4
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
- import { analyzeProject } from "./analyzer.js";
6
5
  import { SeeveClient } from "./client.js";
7
6
  import { AuthManager } from "./auth.js";
8
7
  // MCP Server for Seevo
@@ -21,19 +20,38 @@ const seeveClient = new SeeveClient(authManager);
21
20
  const TOOLS = [
22
21
  {
23
22
  name: "seevo_register_project",
24
- description: "現在のプロジェクトをSeevoに登録します。プロジェクトディレクトリを解析してサービス情報を自動抽出し、Seevoバックエンドに登録します。事前にseevo_set_tokenでトークンを設定する必要があります。",
23
+ description: "プロジェクト情報をSeevoに登録します。事前にseevo_set_tokenでトークンを設定する必要があります。Claude Codeがプロジェクトを解析した結果を渡してください。",
25
24
  inputSchema: {
26
25
  type: "object",
27
26
  properties: {
28
- project_path: {
27
+ service_name: {
29
28
  type: "string",
30
- description: "プロジェクトディレクトリのパス(省略時はカレントディレクトリ)",
29
+ description: "サービス名",
31
30
  },
32
- name: {
31
+ description: {
33
32
  type: "string",
34
- description: "サービス名(省略時は自動検出)",
33
+ description: "サービスの説明",
34
+ },
35
+ target: {
36
+ type: "string",
37
+ description: "ターゲットユーザー",
38
+ },
39
+ features: {
40
+ type: "array",
41
+ items: { type: "string" },
42
+ description: "主な機能のリスト",
43
+ },
44
+ tech_stack: {
45
+ type: "array",
46
+ items: { type: "string" },
47
+ description: "使用している技術スタック",
48
+ },
49
+ url: {
50
+ type: "string",
51
+ description: "プロジェクトのURL(任意)",
35
52
  },
36
53
  },
54
+ required: ["service_name", "description", "target"],
37
55
  },
38
56
  },
39
57
  {
@@ -69,8 +87,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
69
87
  try {
70
88
  switch (name) {
71
89
  case "seevo_register_project": {
72
- const projectPath = args?.project_path || process.cwd();
73
- const projectName = args?.name;
74
90
  // Check authentication
75
91
  if (!authManager.isAuthenticated()) {
76
92
  return {
@@ -82,10 +98,29 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
82
98
  ],
83
99
  };
84
100
  }
85
- // Analyze project
86
- const analysis = await analyzeProject(projectPath, projectName);
101
+ // Get project info from Claude Code
102
+ const projectData = {
103
+ service_name: args?.service_name,
104
+ description: args?.description,
105
+ target: args?.target,
106
+ features: args?.features || [],
107
+ tech_stack: args?.tech_stack || [],
108
+ url: args?.url || undefined,
109
+ };
110
+ // Validate required fields
111
+ if (!projectData.service_name || !projectData.description || !projectData.target) {
112
+ return {
113
+ content: [
114
+ {
115
+ type: "text",
116
+ text: "エラー: service_name, description, targetは必須です。",
117
+ },
118
+ ],
119
+ isError: true,
120
+ };
121
+ }
87
122
  // Register to Seevo
88
- const result = await seeveClient.registerProject(analysis);
123
+ const result = await seeveClient.registerProject(projectData);
89
124
  const techStackText = result.tech_stack && result.tech_stack.length > 0
90
125
  ? `\n**技術スタック**: ${result.tech_stack.join(", ")}`
91
126
  : "";
@@ -180,26 +215,20 @@ Seevoダッシュボードで確認できます: http://localhost:3000/dashboard
180
215
  // Start server or run CLI
181
216
  async function main() {
182
217
  const args = process.argv.slice(2);
183
- // Debug: log args
184
- console.error("DEBUG: process.argv =", process.argv);
185
- console.error("DEBUG: args =", args);
186
218
  // CLI mode: handle subcommands
187
219
  if (args.length > 0 && args[0] === 'register') {
188
- console.error("DEBUG: Running register subcommand");
189
220
  // Dynamically import and run register command
190
221
  // register.ts executes its top-level code when imported
191
222
  await import('./register.js');
192
223
  return;
193
224
  }
194
225
  if (args.length > 0 && args[0] === 'setup') {
195
- console.error("DEBUG: Running setup subcommand");
196
226
  // Dynamically import and run setup command
197
227
  // setup.ts executes its top-level code when imported
198
228
  await import('./setup.js');
199
229
  return;
200
230
  }
201
231
  // MCP Server mode: start stdio server
202
- console.error("DEBUG: Starting MCP server mode");
203
232
  const transport = new StdioServerTransport();
204
233
  await server.connect(transport);
205
234
  console.error("Seevo MCP Server running on stdio");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zelklab/seevo-mcp-server",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "MCP Server for Seevo - AI-powered project registration from Claude Code",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",