-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Open
Description
Summary
OpenCode currently does not pass any session identifier to MCP servers during tool calls, preventing MCP servers from maintaining session context or tracking interactions across multiple calls within a single OpenCode session.
Current Behavior
- Session IDs are generated using
ses_prefix (see/packages/opencode/src/id/id.ts) - Sessions are stored at
storage/session/{projectID}/{sessionID}.json - MCP tool calls in
/packages/opencode/src/mcp/index.tsonly passnameandargumentstoclient.callTool() - No session context is available to MCP servers
Desired Behavior
MCP servers should receive the OpenCode session identifier, enabling:
- Session tracking and analytics
- Contextual awareness across multiple tool calls
- Better debugging and monitoring
- Support for session-specific state management in MCP servers
Proposed Implementation
Options to consider:
- Pass session ID as a custom header for remote MCP servers
- Include session ID in the request metadata for stdio MCP servers
- Add a configuration option to enable/disable this feature
Related Files
- Session ID generation:
packages/opencode/src/id/id.ts - MCP client & tool calls:
packages/opencode/src/mcp/index.ts - Tool context:
packages/opencode/src/tool/tool.ts
Question
Would you accept a contribution for this feature? I'm interested in implementing session identifier support for MCP tool calls.
Metadata
Metadata
Assignees
Labels
No labels