Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Feature Request: session-scoped tool inventory API (list MCP-discovered tools loaded into a session)

Đang mở
#1,143 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi

Hướng nghiên cứu

Bắt đầu bằng cách đọc phần triển khai createSessionRpc và các wrapper session.rpc.{mcp,skills,plugins,extensions}.list() hiện có. Kiểm tra CONTRIBUTING để biết các yêu cầu về tính tương đương giữa Python, Go và .NET, đồng thời xem lại api.schema.json dù trình xử lý RPC phía máy chủ nằm ngoài repository này. Công việc được xem là hoàn tất khi các binding SDK được hỗ trợ cung cấp kết quả tools.list nhất quán trong phạm vi session, với điều kiện RPC nội bộ trở nên khả dụng.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

enhancement

Problem

No public API enumerates the tools loaded into a session — built-ins merged with MCP-discovered tools from SessionConfig.mcpServers. Closest existing surfaces don't cover it:

  • client.rpc.tools.list({ model? }) is server-scoped — built-ins only, no session-loaded MCP tools.
  • session.rpc.mcp.list() returns server connection status (name, status, error?, source?), not tools or counts per server.
  • session.mcp_servers_loaded event fires once on session startup but carries the same server-status-only payload — no tool list.
  • session.mcp_server_status_changed carries { serverName, status } only.
  • session.tools_updated event payload is just { model: string }.

A session can report mcp.status: "connected" and still expose zero tools (wrong CLI flags, version mismatch, schema error) — there's no SDK-side way to detect this.

Why it's needed

  • Operational visibility. Confirm before the first turn that an MCP server actually contributed the expected tools, not just that its process started.
  • Diagnostic UIs. Surface per-server tool counts to operators of BYOK / multi-MCP deployments.
  • Test assertions. Verify a given MCP wiring exposes the expected tool set without spawning a parallel tools/list probe.
  • Parity with prior MCP clients. Other MCP integrations (e.g. @ai-sdk/mcp) expose discovered tools as an enumerable map; consumers migrating to copilot-sdk lose this.

Contribution scope

api.schema.json ships from the closed @github/copilot npm package (the public github/copilot-cli repo is just the installer). The server-side RPC handler must live in the internal CLI — external contributors can only touch SDK bindings/wrappers in this repo, not the underlying RPC implementation.

Proposed solution

Add a session-scoped tools.list RPC, mirroring the existing client.rpc.tools.list() but reflecting per-session config:

// in createSessionRpc:
tools: {
  list: async (): Promise<SessionToolsListResult> =>
    connection.sendRequest("session.tools.list", { sessionId }),
  handlePendingToolCall: /* unchanged */,
}

export interface SessionToolsListResult {
  tools: Tool[]; // namespacedName populated for MCP tools (e.g. "playwright/browser_navigate")
}

Returns built-ins (post-excludedTools/availableTools filtering) + MCP-contributed tools. Consistent with existing session.rpc.{mcp,skills,plugins,extensions}.list() shape. Parity in Python/Go/.NET per CONTRIBUTING.

A leaner alternative: enrich McpServer with toolCount?: number and/or tools?: string[]. Less consistent with the existing pattern but lighter.

Related

  • #944 — same underlying gap, surfaced as a question.
  • #735 — adjacent (manipulating session tool set without teardown).

Environment

@github/copilot-sdk@0.3.0

Ngôn ngữ chính
Java
Star
10.5k
Fork
1.5k
Merge trung bình
1 ngày 9 giờ
Pull request đã merge (30 ngày)
130

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của github/copilot-sdk

Tất cả issue của github/copilot-sdk

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.