feat: replace foundry-mcp/tavily with user-configurable skills system#20
Open
tylerburleigh wants to merge 1 commit into
Open
feat: replace foundry-mcp/tavily with user-configurable skills system#20tylerburleigh wants to merge 1 commit into
tylerburleigh wants to merge 1 commit into
Conversation
Remove hardcoded foundry-mcp and tavily-mcp from the sandbox image and replace them with a generic skills system that lets users define what tools, MCP servers, permissions, and stubs to install. Skills are configured in ~/.sandboxes/skills.toml and selected at sandbox creation time via `cast new --skill <name>` or the setup wizard. What changed: - Remove foundry-mcp pip install and tavily-mcp npm install from Dockerfile - Remove TAVILY/PERPLEXITY/SEMANTIC_SCHOLAR env vars from compose files - Gut foundry_plugin.py (remove prepopulate, research providers, hooks) - Stub out foundry_upgrade.py (no longer needed) - Add skills.py: load TOML config, resolve env vars, generate mounts/env/ permissions, install MCP servers + stubs into containers - Add skills_cmd.py: `cast skills list|show|init` CLI commands - Update new/start/wizard commands to use --skill instead of --pre-foundry - Update state persistence (metadata.skills replaces pre_foundry) - Update permissions.py to accept per-skill allow/deny lists - Update stub_manager.py to use HTML comment markers for idempotency - Empty stubs/CLAUDE.md and stubs/AGENTS.md (now skill-controlled) - Update docs/configuration.md with skills documentation - Update all tests (~700 lines new, all existing tests updated) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
Summary
~/.sandboxes/skills.toml) that lets users define what tools, MCP servers, permissions, environment variables, and stubs to install into sandboxescast skills list|show|init) for managing skill configurationsDetails
Removed
pip install foundry-mcpandnpm install tavily-mcpfrom DockerfileTAVILY_API_KEY,PERPLEXITY_API_KEY,SEMANTIC_SCHOLAR_API_KEYenv vars from compose filesprepopulate_foundry_global(), research provider config, and default hooks fromfoundry_plugin.pyfoundry_upgrade.pyinternals (stubbed to no-op)ensure_opencode_tavily_mcp()fromtool_configs.py.foundry-mcp.tomlandlib/python/ensure_opencode_tavily.pystubs/CLAUDE.mdandstubs/AGENTS.md(now skill-controlled)Added
foundry_sandbox/skills.py— loads TOML config, resolves env vars, generates Docker mounts/env/permissions, installs MCP servers + stubs into containersfoundry_sandbox/commands/skills_cmd.py—cast skills list|show|init--skillflag oncast new(replaces--pre-foundry), multi-select in wizardpermissions.pydocs/configuration.mdExample skills.toml
Test plan
./scripts/ci-local.shto verify all unit tests passcast new --skill <name>and verify skill installationcast skills initcreates a valid example config🤖 Generated with Claude Code