-
Notifications
You must be signed in to change notification settings - Fork 694
feature:tool result add command type #468
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feature:tool result add command type #468
Conversation
WalkthroughA new struct type Changes
Possibly related PRs
Suggested reviewers
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (1)
mcp/types.go (1)
896-901
: Use consistent Go type convention for better codebase uniformity.The
Params
field usesmap[string]interface{}
while other similar fields in the codebase usemap[string]any
(e.g., lines 129, 172, 234). For consistency with modern Go conventions, consider usingmap[string]any
.type CommandContent struct { Type string `json:"type"` // must be "command" Command string `json:"command"` // the command name - Params map[string]interface{} `json:"params,omitempty"` // optional parameters + Params map[string]any `json:"params,omitempty"` // optional parameters }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
mcp/types.go
(1 hunks)mcp/utils.go
(1 hunks)
🧰 Additional context used
🧠 Learnings (2)
mcp/utils.go (3)
Learnt from: floatingIce91
PR: mark3labs/mcp-go#401
File: server/server.go:1082-1092
Timestamp: 2025-06-23T11:10:42.948Z
Learning: In Go MCP server, ServerTool.Tool field is only used for tool listing and indexing, not for tool execution or middleware. During handleToolCall, only the Handler field is used, so dynamic tools don't need the Tool field populated.
Learnt from: xinwo
PR: mark3labs/mcp-go#35
File: mcp/tools.go:107-137
Timestamp: 2025-03-04T06:59:43.882Z
Learning: Tool responses from the MCP server shouldn't contain RawInputSchema, which is why the UnmarshalJSON method for the Tool struct is implemented to handle only the structured InputSchema format.
Learnt from: lariel-fernandes
PR: mark3labs/mcp-go#428
File: www/docs/pages/servers/prompts.mdx:218-234
Timestamp: 2025-06-20T20:39:51.870Z
Learning: In the mcp-go library, the GetPromptParams.Arguments field is of type map[string]string, not map[string]interface{}, so direct string access without type assertions is safe and correct.
mcp/types.go (2)
Learnt from: ezynda3
PR: mark3labs/mcp-go#461
File: server/sampling.go:22-26
Timestamp: 2025-06-30T07:13:16.959Z
Learning: In the mark3labs/mcp-go project, the MCPServer.capabilities field is a struct value (serverCapabilities), not a pointer, so it cannot be nil and doesn't require nil checking. Only pointer fields within the capabilities struct should be checked for nil.
Learnt from: lariel-fernandes
PR: mark3labs/mcp-go#428
File: www/docs/pages/servers/prompts.mdx:218-234
Timestamp: 2025-06-20T20:39:51.870Z
Learning: In the mcp-go library, the GetPromptParams.Arguments field is of type map[string]string, not map[string]interface{}, so direct string access without type assertions is safe and correct.
🧬 Code Graph Analysis (1)
mcp/utils.go (2)
mcp/tools.go (1)
CallToolResult
(36-43)mcp/types.go (4)
Content
(827-829)CommandContent
(897-901)CommandContent
(903-903)Params
(162-162)
🔇 Additional comments (2)
mcp/types.go (1)
903-903
: LGTM! Proper Content interface implementation.The
isContent()
method correctly implements theContent
interface, allowingCommandContent
to be used in content arrays.mcp/utils.go (1)
358-367
: LGTM! Function follows established patterns correctly.The function implementation correctly creates a
CallToolResult
withCommandContent
, following the same pattern as otherNewToolResult*
functions in the codebase.
@mathiasXie can you explain why this feature is needed or how it should be used? |
Description
Fixes #<issue_number> (if applicable)
Type of Change
Checklist
MCP Spec Compliance
Additional Information
Summary by CodeRabbit