Add initial support for multi-tool workflows#685
Merged
mattdholloway merged 13 commits intomainfrom Jul 30, 2025
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR adds support for multi-tool workflows by introducing four new workflow prompts that provide guided interactions for common GitHub development tasks. The workflows combine multiple existing GitHub tools into structured, conversational flows for more comprehensive automation.
- Adds four new workflow prompts for PR review, notification triage, issue investigation, and issue-to-fix workflows
- Integrates workflow prompts into existing toolsets (issues, pull_requests, notifications)
- Provides guided multi-step processes that leverage existing GitHub API tools
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| pkg/github/workflow_prompts.go | New file containing four workflow prompt implementations with guided conversation flows |
| pkg/github/tools.go | Integration of new workflow prompts into existing toolsets for issues, pull requests, and notifications |
Comments suppressed due to low confidence (4)
pkg/github/workflow_prompts.go:13
- The return parameter name 'tool' should be 'prompt' since it returns an mcp.Prompt, not a tool. This naming is inconsistent and misleading.
func PullRequestReviewWorkflowPrompt(t translations.TranslationHelperFunc) (tool mcp.Prompt, handler server.PromptHandlerFunc) {
pkg/github/workflow_prompts.go:53
- The return parameter name 'tool' should be 'prompt' since it returns an mcp.Prompt, not a tool. This naming is inconsistent and misleading.
func NotificationTriageWorkflowPrompt(t translations.TranslationHelperFunc) (tool mcp.Prompt, handler server.PromptHandlerFunc) {
pkg/github/workflow_prompts.go:92
- The return parameter name 'tool' should be 'prompt' since it returns an mcp.Prompt, not a tool. This naming is inconsistent and misleading.
func IssueInvestigationWorkflowPrompt(t translations.TranslationHelperFunc) (tool mcp.Prompt, handler server.PromptHandlerFunc) {
pkg/github/workflow_prompts.go:140
- The return parameter name 'tool' should be 'prompt' since it returns an mcp.Prompt, not a tool. This naming is inconsistent and misleading.
func IssueToFixWorkflowPrompt(t translations.TranslationHelperFunc) (tool mcp.Prompt, handler server.PromptHandlerFunc) {
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…ub-mcp-server into multi-tool-workflows
almaleksia
approved these changes
Jul 30, 2025
nickytonline
pushed a commit
to nickytonline/github-mcp-http
that referenced
this pull request
Oct 4, 2025
* initial workflows * fixing tabs * remove unused SecurityAlertWorkflowPrompt and RepositorySetupWorkflowPrompt * add workflow prompt for creating issue and assigning to copilot * Update pkg/github/workflow_prompts.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * remove notif triage * remove code inv workflow tool * rm another --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
SamMorrowDrums
added a commit
that referenced
this pull request
Dec 17, 2025
Add CachedInventory to build tool/resource/prompt definitions once at startup rather than per-request. This is particularly useful for the remote server pattern where a new server instance is created per request. Key features: - InitInventoryCache(t) initializes the cache once at startup - CachedInventoryBuilder() returns a builder with pre-cached definitions - Per-request configuration (read-only, toolsets, feature flags) still works - Thread-safe via sync.Once - Backward compatible: NewInventory(t) still works without caching This addresses the performance concern raised in go-sdk PR #685 at a higher level by caching the entire []ServerTool slice rather than individual schemas. Related: modelcontextprotocol/go-sdk#685
SamMorrowDrums
added a commit
that referenced
this pull request
Dec 17, 2025
Add CachedInventory to build tool/resource/prompt definitions once at startup rather than per-request. This is particularly useful for the remote server pattern where a new server instance is created per request. Key features: - InitInventoryCache(t) initializes the cache once at startup - InitInventoryCacheWithExtras(t, tools, resources, prompts) allows injecting additional items (e.g., remote-only Copilot tools) - CachedInventoryBuilder() returns a builder with pre-cached definitions - Per-request configuration (read-only, toolsets, feature flags) still works - Thread-safe via sync.Once - Backward compatible: NewInventory(t) still works without caching This addresses the performance concern raised in go-sdk PR #685 at a higher level by caching the entire []ServerTool slice rather than individual schemas. Related: modelcontextprotocol/go-sdk#685
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes: https://github.com/github/copilot-agent-services/issues/322