apifox-workspace-mcp 2.0.8 → 2.1.3
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/core/cache/unified-cache-manager.d.ts +60 -2
- package/dist/core/cache/unified-cache-manager.d.ts.map +1 -1
- package/dist/core/cache/unified-cache-manager.js +167 -2
- package/dist/core/cache/unified-cache-manager.js.map +1 -1
- package/dist/core/client/mcp-bridge.d.ts +8 -0
- package/dist/core/client/mcp-bridge.d.ts.map +1 -1
- package/dist/core/client/mcp-bridge.js +86 -0
- package/dist/core/client/mcp-bridge.js.map +1 -1
- package/dist/core/config/manager.d.ts +23 -0
- package/dist/core/config/manager.d.ts.map +1 -1
- package/dist/core/config/manager.js +90 -1
- package/dist/core/config/manager.js.map +1 -1
- package/dist/core/generator/artifact.d.ts +2 -0
- package/dist/core/generator/artifact.d.ts.map +1 -1
- package/dist/core/generator/artifact.js +70 -6
- package/dist/core/generator/artifact.js.map +1 -1
- package/dist/core/generator/cursor-rules-loader.d.ts +34 -0
- package/dist/core/generator/cursor-rules-loader.d.ts.map +1 -0
- package/dist/core/generator/cursor-rules-loader.js +147 -0
- package/dist/core/generator/cursor-rules-loader.js.map +1 -0
- package/dist/core/generator/index.d.ts +3 -0
- package/dist/core/generator/index.d.ts.map +1 -1
- package/dist/core/generator/index.js +2 -0
- package/dist/core/generator/index.js.map +1 -1
- package/dist/core/generator/type-transformer.d.ts +18 -0
- package/dist/core/generator/type-transformer.d.ts.map +1 -0
- package/dist/core/generator/type-transformer.js +103 -0
- package/dist/core/generator/type-transformer.js.map +1 -0
- package/dist/core/parser/index.d.ts +1 -1
- package/dist/core/parser/index.d.ts.map +1 -1
- package/dist/core/parser/index.js +1 -1
- package/dist/core/parser/index.js.map +1 -1
- package/dist/core/parser/llms.d.ts +12 -0
- package/dist/core/parser/llms.d.ts.map +1 -1
- package/dist/core/parser/llms.js +24 -0
- package/dist/core/parser/llms.js.map +1 -1
- package/dist/lib/env.d.ts.map +1 -1
- package/dist/lib/env.js.map +1 -1
- package/dist/server/handlers/generate-artifacts.d.ts.map +1 -1
- package/dist/server/handlers/generate-artifacts.js +22 -31
- package/dist/server/handlers/generate-artifacts.js.map +1 -1
- package/dist/server/handlers/get-interface-detail.d.ts.map +1 -1
- package/dist/server/handlers/get-interface-detail.js +41 -66
- package/dist/server/handlers/get-interface-detail.js.map +1 -1
- package/dist/server/handlers/index.d.ts +1 -0
- package/dist/server/handlers/index.d.ts.map +1 -1
- package/dist/server/handlers/index.js +1 -0
- package/dist/server/handlers/index.js.map +1 -1
- package/dist/server/handlers/list-project-interfaces.d.ts.map +1 -1
- package/dist/server/handlers/list-project-interfaces.js +23 -14
- package/dist/server/handlers/list-project-interfaces.js.map +1 -1
- package/dist/server/handlers/parse-and-add-project.js +9 -9
- package/dist/server/handlers/parse-and-add-project.js.map +1 -1
- package/dist/server/handlers/query-interfaces.d.ts.map +1 -1
- package/dist/server/handlers/query-interfaces.js +12 -0
- package/dist/server/handlers/query-interfaces.js.map +1 -1
- package/dist/server/handlers/refresh-project-cache.d.ts +22 -0
- package/dist/server/handlers/refresh-project-cache.d.ts.map +1 -0
- package/dist/server/handlers/refresh-project-cache.js +45 -0
- package/dist/server/handlers/refresh-project-cache.js.map +1 -0
- package/dist/server/index.js +32 -4
- package/dist/server/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ApifoxClient, isValidApifoxUrl, parseApifoxUrl, ShareLinkType, UnifiedCacheManager,
|
|
1
|
+
import { ApifoxClient, isValidApifoxUrl, parseApifoxUrl, ShareLinkType, UnifiedCacheManager, fetchAndParseLlmsWithHash, } from '../../core/index.js';
|
|
2
2
|
/**
|
|
3
3
|
* 处理解析并添加项目请求
|
|
4
4
|
*/
|
|
@@ -137,17 +137,17 @@ export async function handleParseAndAddProject(args, ctx) {
|
|
|
137
137
|
};
|
|
138
138
|
}
|
|
139
139
|
// 使用统一缓存管理器
|
|
140
|
-
// 保存项目元数据(包含 shareId)
|
|
141
|
-
cacheManager.upsertProjectMetadata(projectName, projectId, llmsUrl, shareId);
|
|
140
|
+
// 保存项目元数据(包含 shareId 和 TTL)
|
|
141
|
+
cacheManager.upsertProjectMetadata(projectName, projectId, llmsUrl, shareId, configManager);
|
|
142
142
|
steps.push(' ✅ 已保存项目元数据到统一缓存');
|
|
143
|
-
// 从 llms.txt
|
|
143
|
+
// 从 llms.txt 解析接口列表(同时计算 Hash)
|
|
144
144
|
steps.push(' 🔄 正在从 llms.txt 解析接口列表...');
|
|
145
145
|
try {
|
|
146
|
-
const
|
|
147
|
-
steps.push(` ✅ 从 llms.txt 解析到 ${
|
|
148
|
-
//
|
|
149
|
-
cacheManager.updateInterfacesFromLlms(projectName,
|
|
150
|
-
steps.push(` ✅ 已更新接口列表到统一缓存(${
|
|
146
|
+
const { interfaces, contentHash } = await fetchAndParseLlmsWithHash(llmsUrl);
|
|
147
|
+
steps.push(` ✅ 从 llms.txt 解析到 ${interfaces.length} 个接口`);
|
|
148
|
+
// 更新项目的接口列表(同时保存 Hash)
|
|
149
|
+
cacheManager.updateInterfacesFromLlms(projectName, interfaces, contentHash);
|
|
150
|
+
steps.push(` ✅ 已更新接口列表到统一缓存(${interfaces.length} 个接口)`);
|
|
151
151
|
}
|
|
152
152
|
catch (error) {
|
|
153
153
|
steps.push(` ⚠️ 解析 llms.txt 失败: ${error instanceof Error ? error.message : String(error)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-and-add-project.js","sourceRoot":"","sources":["../../../src/server/handlers/parse-and-add-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EAEb,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"parse-and-add-project.js","sourceRoot":"","sources":["../../../src/server/handlers/parse-and-add-project.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-interfaces.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/query-interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"query-interfaces.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/query-interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,SAAS,EACT,YAAY,EAGb,MAAM,qBAAqB,CAAC;AAI7B,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,mBAAmB,EACzB,GAAG,EAAE,sBAAsB;;;;;;;;;;;;GA2I5B"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { UnifiedCacheManager, } from '../../core/index.js';
|
|
1
2
|
import { resolveProjectInfo, buildTextResponse, buildMissingTokenResponse } from './utils.js';
|
|
3
|
+
import { logger } from '../../lib/logger.js';
|
|
2
4
|
/**
|
|
3
5
|
* 处理查询接口请求
|
|
4
6
|
*/
|
|
@@ -17,6 +19,16 @@ export async function handleQueryInterfaces(args, ctx) {
|
|
|
17
19
|
return buildMissingTokenResponse();
|
|
18
20
|
}
|
|
19
21
|
try {
|
|
22
|
+
// 在读取缓存前,先检查并刷新(如果有配置管理器)
|
|
23
|
+
const cacheManager = new UnifiedCacheManager(projectRoot);
|
|
24
|
+
const project = cacheManager.findProjectByName(projectInfo.projectName);
|
|
25
|
+
if (project && configManager) {
|
|
26
|
+
const refreshResult = await cacheManager.refreshProjectCache(projectInfo.projectName, configManager, 'lazy');
|
|
27
|
+
if (refreshResult.refreshed) {
|
|
28
|
+
logger.info(`缓存已刷新: ${refreshResult.reason}, 接口数量: ${refreshResult.interfaceCount}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// 继续使用缓存查询(刷新后缓存已更新)
|
|
20
32
|
const interfaces = await mcpBridge.getInterfacesViaMcp(projectInfo.projectName, projectInfo.projectId, keyword);
|
|
21
33
|
const filtered = interfaces.filter((api) => {
|
|
22
34
|
if (!tag) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-interfaces.js","sourceRoot":"","sources":["../../../src/server/handlers/query-interfaces.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-interfaces.js","sourceRoot":"","sources":["../../../src/server/handlers/query-interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ConfigManager, ContextStore } from '../../core/index.js';
|
|
2
|
+
export interface RefreshProjectCacheArgs {
|
|
3
|
+
projectName?: string;
|
|
4
|
+
projectId?: string;
|
|
5
|
+
force?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface RefreshProjectCacheContext {
|
|
8
|
+
projectRoot: string;
|
|
9
|
+
configManager: ConfigManager;
|
|
10
|
+
contextStore: ContextStore;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 处理刷新项目缓存请求
|
|
14
|
+
*/
|
|
15
|
+
export declare function handleRefreshProjectCache(args: RefreshProjectCacheArgs, ctx: RefreshProjectCacheContext): Promise<{
|
|
16
|
+
content: {
|
|
17
|
+
type: "text";
|
|
18
|
+
text: string;
|
|
19
|
+
}[];
|
|
20
|
+
isError: boolean;
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=refresh-project-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh-project-cache.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/refresh-project-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIvF,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,uBAAuB,EAC7B,GAAG,EAAE,0BAA0B;;;;;;GA6DhC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { UnifiedCacheManager } from '../../core/index.js';
|
|
2
|
+
import { resolveProjectInfo } from './utils.js';
|
|
3
|
+
import { buildTextResponse } from './utils.js';
|
|
4
|
+
/**
|
|
5
|
+
* 处理刷新项目缓存请求
|
|
6
|
+
*/
|
|
7
|
+
export async function handleRefreshProjectCache(args, ctx) {
|
|
8
|
+
const { projectRoot, configManager, contextStore } = ctx;
|
|
9
|
+
const cacheManager = new UnifiedCacheManager(projectRoot);
|
|
10
|
+
const projectInfo = resolveProjectInfo(projectRoot, contextStore, args.projectName, args.projectId);
|
|
11
|
+
if (!projectInfo) {
|
|
12
|
+
return buildTextResponse(`无法确定项目信息。\n\n` +
|
|
13
|
+
`**建议操作:**\n` +
|
|
14
|
+
`- 使用 \`parse_and_add_project\` 工具添加项目(参数:url: "Apifox 项目分享链接")\n` +
|
|
15
|
+
`- 或使用 \`list_projects\` 工具查看已集成的项目列表,然后指定 projectName 参数`);
|
|
16
|
+
}
|
|
17
|
+
const project = cacheManager.findProjectByName(projectInfo.projectName);
|
|
18
|
+
if (!project) {
|
|
19
|
+
return buildTextResponse(`项目 ${projectInfo.projectName} 不存在于缓存中。\n\n` +
|
|
20
|
+
`**建议操作:**\n` +
|
|
21
|
+
`- 使用 \`parse_and_add_project\` 工具添加项目(参数:url: "Apifox 项目分享链接")`);
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
const strategy = args.force ? 'force' : 'lazy';
|
|
25
|
+
const refreshResult = await cacheManager.refreshProjectCache(projectInfo.projectName, configManager, strategy);
|
|
26
|
+
if (refreshResult.refreshed) {
|
|
27
|
+
return buildTextResponse(`✅ 缓存刷新成功!\n\n` +
|
|
28
|
+
`**刷新原因**: ${refreshResult.reason}\n` +
|
|
29
|
+
`**接口数量**: ${refreshResult.interfaceCount} 个\n\n` +
|
|
30
|
+
`**接下来你可以:**\n` +
|
|
31
|
+
`- 使用 \`query_interfaces\` 工具查询接口(参数:projectName: "${projectInfo.projectName}")\n` +
|
|
32
|
+
`- 使用 \`list_project_interfaces\` 工具查看所有接口(参数:projectName: "${projectInfo.projectName}")`);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return buildTextResponse(`ℹ️ 缓存无需刷新。\n\n` +
|
|
36
|
+
`**原因**: ${refreshResult.reason}\n` +
|
|
37
|
+
`**当前缓存状态**: 最新\n\n` +
|
|
38
|
+
`如果确实需要强制刷新,可以使用 force 参数。`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
return buildTextResponse(`❌ 刷新缓存失败: ${error instanceof Error ? error.message : String(error)}`, true);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=refresh-project-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh-project-cache.js","sourceRoot":"","sources":["../../../src/server/handlers/refresh-project-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,mBAAmB,EAAgB,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAc/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAA6B,EAC7B,GAA+B;IAE/B,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC;IACzD,MAAM,YAAY,GAAG,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAE1D,MAAM,WAAW,GAAG,kBAAkB,CACpC,WAAW,EACX,YAAY,EACZ,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,SAAS,CACf,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,iBAAiB,CACtB,eAAe;YACb,aAAa;YACb,kEAAkE;YAClE,0DAA0D,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,iBAAiB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACxE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,iBAAiB,CACtB,MAAM,WAAW,CAAC,WAAW,eAAe;YAC1C,aAAa;YACb,gEAAgE,CACnE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/C,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAC1D,WAAW,CAAC,WAAW,EACvB,aAAa,EACb,QAAQ,CACT,CAAC;QAEF,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;YAC5B,OAAO,iBAAiB,CACtB,eAAe;gBACb,aAAa,aAAa,CAAC,MAAM,IAAI;gBACrC,aAAa,aAAa,CAAC,cAAc,QAAQ;gBACjD,eAAe;gBACf,qDAAqD,WAAW,CAAC,WAAW,MAAM;gBAClF,8DAA8D,WAAW,CAAC,WAAW,IAAI,CAC5F,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,iBAAiB,CACtB,gBAAgB;gBACd,WAAW,aAAa,CAAC,MAAM,IAAI;gBACnC,oBAAoB;gBACpB,2BAA2B,CAC9B,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,iBAAiB,CACtB,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACrE,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/server/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
7
7
|
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
8
8
|
import { ConfigManager, McpBridge, ContextStore } from '../core/index.js';
|
|
9
9
|
import { loadEnvFromMcpConfig, DEFAULT_SERVER_NAME, findProjectRoot } from '../lib/index.js';
|
|
10
|
-
import { handleListProjects, handleParseAndAddProject, handleQueryInterfaces, handleGetInterfaceDetail, handleGenerateArtifacts, handleSelectInterfaces, } from './handlers/index.js';
|
|
10
|
+
import { handleListProjects, handleParseAndAddProject, handleQueryInterfaces, handleGetInterfaceDetail, handleGenerateArtifacts, handleSelectInterfaces, handleRefreshProjectCache, } from './handlers/index.js';
|
|
11
11
|
/**
|
|
12
12
|
* 获取包版本号
|
|
13
13
|
* 从 package.json 中读取版本信息
|
|
@@ -74,7 +74,7 @@ class ApifoxMcpServer {
|
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
76
|
name: 'parse_and_add_project',
|
|
77
|
-
description: '解析 Apifox 分享链接并添加到项目配置中。使用场景:当用户提供 Apifox
|
|
77
|
+
description: '解析 Apifox 分享链接并添加到项目配置中。使用场景:当用户提供 Apifox 分享链接(项目链接或接口链接)时,自动解析项目信息、接口列表并缓存到本地。这是使用其他工具的前提步骤,必须先添加项目才能查询接口。支持项目级链接和接口级链接两种格式。**缓存管理**:添加项目时会自动设置缓存过期时间(根据 MCP 配置的 TTL),并计算内容 Hash 用于后续版本检测。如果项目已存在,会更新项目信息和接口列表。',
|
|
78
78
|
inputSchema: {
|
|
79
79
|
type: 'object',
|
|
80
80
|
properties: {
|
|
@@ -88,7 +88,7 @@ class ApifoxMcpServer {
|
|
|
88
88
|
},
|
|
89
89
|
{
|
|
90
90
|
name: 'query_interfaces',
|
|
91
|
-
description: '在指定项目中搜索和查询接口,支持关键词、路径、标签等多种过滤方式。使用场景:当用户询问"查询XX接口"、"搜索XX"、"找XX接口"、"有哪些XX接口"时调用此工具。返回匹配的接口列表,包含接口 ID、名称、路径、方法等信息,每个接口都有编号便于后续选择。如果用户提到接口路径(如 /api/login),使用 keyword
|
|
91
|
+
description: '在指定项目中搜索和查询接口,支持关键词、路径、标签等多种过滤方式。使用场景:当用户询问"查询XX接口"、"搜索XX"、"找XX接口"、"有哪些XX接口"时调用此工具。返回匹配的接口列表,包含接口 ID、名称、路径、方法等信息,每个接口都有编号便于后续选择。如果用户提到接口路径(如 /api/login),使用 keyword 参数传入路径进行搜索。**自动刷新机制**:此工具会在查询前自动检查缓存是否过期或内容是否更新,必要时会自动刷新缓存以确保数据最新。如果用户明确要求"刷新"或"更新",应优先使用 refresh_project_cache 工具。',
|
|
92
92
|
inputSchema: {
|
|
93
93
|
type: 'object',
|
|
94
94
|
properties: {
|
|
@@ -118,7 +118,7 @@ class ApifoxMcpServer {
|
|
|
118
118
|
},
|
|
119
119
|
{
|
|
120
120
|
name: 'get_interface_detail',
|
|
121
|
-
description: '获取指定接口的完整详细信息,包括请求参数(headers、cookies、query、path、body)、响应结构、curl 示例、fetch 示例和 TypeScript 类型。使用场景:当用户询问"XX接口的详情"、"告诉我XX接口的信息"、"查看XX接口"、或提供了包含 interfaceId 的 Apifox 接口链接时调用此工具。返回的接口详情可用于代码生成、API
|
|
121
|
+
description: '获取指定接口的完整详细信息,包括请求参数(headers、cookies、query、path、body)、响应结构、curl 示例、fetch 示例和 TypeScript 类型。使用场景:当用户询问"XX接口的详情"、"告诉我XX接口的信息"、"查看XX接口"、或提供了包含 interfaceId 的 Apifox 接口链接时调用此工具。返回的接口详情可用于代码生成、API 调用等场景。**自动刷新机制**:此工具会在获取详情前自动检查缓存是否过期或内容是否更新,必要时会自动刷新缓存以确保数据最新。如果用户明确要求"刷新"或"更新",应优先使用 refresh_project_cache 工具。',
|
|
122
122
|
inputSchema: {
|
|
123
123
|
type: 'object',
|
|
124
124
|
properties: {
|
|
@@ -189,6 +189,28 @@ class ApifoxMcpServer {
|
|
|
189
189
|
required: [],
|
|
190
190
|
},
|
|
191
191
|
},
|
|
192
|
+
{
|
|
193
|
+
name: 'refresh_project_cache',
|
|
194
|
+
description: '刷新指定项目的缓存数据,确保获取最新的接口信息。使用场景:当用户询问"刷新XX项目的缓存"、"更新XX项目的数据"、"重新加载XX项目"、"强制更新XX项目"时调用此工具。支持强制刷新(忽略缓存直接更新)和智能刷新(仅在缓存过期或内容变化时更新)。如果用户明确要求"强制刷新"、"立即更新"、"忽略缓存",使用 force: true 参数。返回刷新结果、原因和接口数量。',
|
|
195
|
+
inputSchema: {
|
|
196
|
+
type: 'object',
|
|
197
|
+
properties: {
|
|
198
|
+
projectName: {
|
|
199
|
+
type: 'string',
|
|
200
|
+
description: '项目名称(可选)。如果用户明确提到项目名称,使用该名称;如果未提到,可以从上下文或缓存中获取最近使用的项目名称。',
|
|
201
|
+
},
|
|
202
|
+
projectId: {
|
|
203
|
+
type: 'string',
|
|
204
|
+
description: '项目 ID(可选)。如果知道项目 ID,可以使用此参数。通常 projectName 和 projectId 只需提供一个即可。',
|
|
205
|
+
},
|
|
206
|
+
force: {
|
|
207
|
+
type: 'boolean',
|
|
208
|
+
description: '是否强制刷新(可选,默认 false)。当用户明确要求"强制刷新"、"立即更新"、"忽略缓存"、"不管缓存直接更新"时,设置为 true。如果为 false,则仅在缓存过期或内容变化时刷新。',
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
required: [],
|
|
212
|
+
},
|
|
213
|
+
},
|
|
192
214
|
],
|
|
193
215
|
}));
|
|
194
216
|
// 处理工具调用
|
|
@@ -218,6 +240,12 @@ class ApifoxMcpServer {
|
|
|
218
240
|
configManager: this.configManager,
|
|
219
241
|
contextStore: this.contextStore,
|
|
220
242
|
});
|
|
243
|
+
case 'refresh_project_cache':
|
|
244
|
+
return await handleRefreshProjectCache(args, {
|
|
245
|
+
projectRoot: this.projectRoot,
|
|
246
|
+
configManager: this.configManager,
|
|
247
|
+
contextStore: this.contextStore,
|
|
248
|
+
});
|
|
221
249
|
default:
|
|
222
250
|
throw new Error(`未知工具: ${name}`);
|
|
223
251
|
}
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAEnG,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "apifox-workspace-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.3",
|
|
4
4
|
"description": "Workspace-level Apifox MCP Server for intelligent API documentation integration in Cursor AI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/server/index.js",
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"test:coverage": "vitest run --coverage",
|
|
30
30
|
"test:setup": "bash scripts/setup-test-project.sh",
|
|
31
31
|
"test:interactive": "node scripts/test-interactive.mjs",
|
|
32
|
-
"prepublishOnly": "npm run lint:check && npm run typecheck && npm run test && npm run build",
|
|
33
|
-
"preversion": "npm run lint:check && npm run test",
|
|
34
|
-
"postversion": "git push &&
|
|
32
|
+
"prepublishOnly": "npm run format:check && npm run lint:check && npm run typecheck && npm run test && npm run build",
|
|
33
|
+
"preversion": "npm run format:check && npm run lint:check && npm run test",
|
|
34
|
+
"postversion": "git push && bash scripts/push-tags.sh",
|
|
35
35
|
"publish:check": "bash scripts/pre-publish-check.sh",
|
|
36
36
|
"publish:dry": "npm publish --dry-run"
|
|
37
37
|
},
|