Skip to content

feat: dynamic MCP server discovery (issue #368) - #411

Merged
Delqhi merged 1 commit into
mainfrom
feat/mcp-discovery
Jun 18, 2026
Merged

feat: dynamic MCP server discovery (issue #368)#411
Delqhi merged 1 commit into
mainfrom
feat/mcp-discovery

Conversation

@Delqhi

@Delqhi Delqhi commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator

Scans standard MCP config locations and exposes discovered servers through the mcp subcommand.

  • mcpclient.DiscoverConfigs scans user and project MCP configs
  • mcpclient.WriteServerConfig persists a server config
  • sin-code mcp discover and mcp add subcommands
  • Wired into LoadConfigs
  • Race-clean tests included

Closes #368.

@Delqhi Delqhi added the enhancement New feature or request label Jun 18, 2026
@Delqhi
Delqhi merged commit 9675eaa into main Jun 18, 2026
2 checks passed
@vercel

vercel Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sin-code Building Building Preview, Comment, Open in v0 Jun 18, 2026 7:30pm

@github-actions

Copy link
Copy Markdown

🏆 CEO Audit — A+ (100.0/100)

Metric Value
Grade A+
Score 100.0/100
Critical findings 0
High findings 0
Profile QUICK
Min grade gate B

📥 Download full report (Markdown)
📊 Download SARIF (for Code Scanning)

Run ~/.config/opencode/skills/ceo-audit/scripts/audit.sh . --profile=QUICK locally to reproduce.

@github-actions

Copy link
Copy Markdown

🏆 CEO Audit — A+ (100.0/100)

Metric Value
Grade A+
Score 100.0/100
Critical findings 0
High findings 0
Medium findings 0
Profile QUICK
Min grade gate B

📥 Download full report (Markdown)

Run ID: 27784237747 · Commit: ${github.sha}

Run ~/.config/opencode/skills/ceo-audit/scripts/audit.sh . --profile=QUICK locally to reproduce.

// readServerConfigs parses a single JSON file that may be either a ServerConfig
// object or an array of ServerConfig objects.
func readServerConfigs(path string) ([]ServerConfig, error) {
data, err := os.ReadFile(path)
// returns ServerConfig entries. The map key is used as the server name if the
// entry does not already contain one.
func readMCPServersMap(path string) ([]ServerConfig, error) {
data, err := os.ReadFile(path)
return err
}
serversDir := filepath.Join(configDir, "mcp", "servers")
if err := os.MkdirAll(serversDir, 0o755); err != nil {
return err
}
path := filepath.Join(serversDir, cfg.Name+".json")
return os.WriteFile(path, data, 0o644)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Tool system: Dynamic MCP server discovery from ~/.config/mcp/ and project config

2 participants