You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/ISSUE/epic-architect-github-workflow-as-mcp.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,6 +41,7 @@ We will employ a rapid and agile development approach. The scope and API specifi
41
41
-**Goal:** Evolve the server from a REST API to a true MCP tool-providing server.
42
42
-**Sub-Tasks:**
43
43
-`ticket-refactor-to-mcp-tool-server.md`: Implement `tools/list` and `tools/call` endpoints to dynamically expose the server's capabilities.
44
+
-`ticket-enhance-tools-list-with-schema.md`: Enhance the `/tools/list` endpoint to include OpenAPI schema definitions for each tool's parameters and responses.
The current `/tools/list` endpoint provides only the name and description of available tools. To enable robust client-side integration and dynamic tool generation for the agent, the tool list needs to include the full OpenAPI schema for each tool's parameters and response, as dictated by the Model Context Protocol (MCP) specification.
18
+
19
+
This enhancement will allow the agent to fully understand how to call each tool, including required arguments, their types, and the expected return format, directly from the `/tools/list` response.
20
+
21
+
## Acceptance Criteria
22
+
23
+
1. The `toolService.mjs` is updated to extract relevant schema information (parameters, requestBody) for each operation from the `openapi.yaml` and convert it into a single `inputSchema` (JSON Schema) for each tool.
24
+
2. The `GET /tools/list` endpoint's response for each tool includes:
25
+
-`name` (string): The unique identifier for the tool (from `operationId`).
26
+
-`title` (string): A human-readable title for the tool (from `summary`).
27
+
-`description` (string): A detailed description of the tool (from `description`).
28
+
-`inputSchema` (JSON Schema object): A JSON Schema defining the tool's parameters, derived from the OpenAPI operation's `parameters` and `requestBody`.
29
+
3. The `callTool` function in `toolService.mjs` is updated to remove the manual `switch` statement for argument mapping. It should expect `args` to conform to the `inputSchema` and use a more generic method to pass them to the `tool.handler`.
30
+
4. The `outputSchema` (JSON Schema object) is optionally included in the tool definition if available in the OpenAPI response.
0 commit comments