Skip to content

feat: replace server instructions with skill resources#2374

Draft
SamMorrowDrums wants to merge 1 commit intomainfrom
sammorrowdrums/skills-over-mcp-refactor
Draft

feat: replace server instructions with skill resources#2374
SamMorrowDrums wants to merge 1 commit intomainfrom
sammorrowdrums/skills-over-mcp-refactor

Conversation

@SamMorrowDrums
Copy link
Copy Markdown
Collaborator

Summary

Replaces the server instructions system with MCP skill resources that follow the skill:// URI convention, enabling MCP clients (like pi-mcp-agent) to discover and load domain-specific guidance on demand.

Related: https://github.com/SamMorrowDrums/pi-mcp-agent/issues/2

What changed

Added

  • pkg/github/skill_resources.go — 16 skill resources covering all toolsets, registered as skill://github/{name}/SKILL.md static resources
  • pkg/github/skill_resources_test.go — tests verifying all tools are covered, content format, URI uniqueness, and registration

Removed

  • Server instructionsInstructionsFunc on ToolsetMetadata, generateInstructions(), WithServerInstructions() builder method, and the Instructions field from MCP server options
  • pkg/github/toolset_instructions.go — instruction generator functions
  • pkg/inventory/instructions.go — the generateInstructions function
  • pkg/inventory/instructions_test.go — associated tests

Skills created (16 total)

Skill Tools covered
context get_me, get_teams, get_team_members
repos search_repositories, get_file_contents, list_commits, search_code, etc.
issues issue_read, search_issues, list_issues, issue_write, etc.
pull-requests pull_request_read, create_pull_request, merge_pull_request, etc.
code-security code scanning, secret scanning, dependabot alerts
actions actions_list, actions_get, actions_run_trigger, get_job_logs
discussions list_discussions, get_discussion, etc.
projects projects_list, projects_get, projects_write
notifications list_notifications, dismiss_notification, etc.
gists list_gists, get_gist, create_gist, update_gist
users-orgs search_users, search_orgs
security-advisories global and repository security advisories
labels list_label, list_labels, label_write
git get_repository_tree
stargazers list_starred_repositories, star/unstar
copilot assign_copilot_to_issue, request_copilot_review

How it works

  1. Skills are registered as static MCP resources with skill://github/{name}/SKILL.md URIs
  2. MCP clients discover skills via resources/list (filtering for skill:// URIs)
  3. Each skill has YAML frontmatter with name, description, and allowed-tools
  4. The markdown body contains usage guidance (previously in server instructions)
  5. All tools remain available by default — skills provide context, not gating

Testing

  • script/lint
  • script/test ✅ (all tests pass)
  • New tests verify coverage, content format, and registration

Replace the server instructions system with MCP skill resources that
follow the skill:// URI convention for discovery by MCP clients.

Each skill resource covers a domain of tools and provides YAML
frontmatter (name, description, allowed-tools) plus markdown guidance.

All tools remain available by default (all tools mode). Skills provide
contextual guidance that clients can discover via resources/list.

16 skills covering all toolsets: context, repos, issues, pull-requests,
code-security, actions, discussions, projects, notifications, gists,
users-orgs, security-advisories, labels, git, stargazers, copilot.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@SamMorrowDrums SamMorrowDrums force-pushed the sammorrowdrums/skills-over-mcp-refactor branch from 118f25c to 2140dd3 Compare April 23, 2026 20:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant