Use Case: AI Self-Configuring MCP Servers at Runtime
Let the AI discover what tools it needs and connect new MCP servers on the fly -- no config changes, no restarts.
The Problem
You don't always know upfront which tools a session will need. A developer asks "help me with the GitHub issues" but the GitHub MCP server isn't configured. Or the AI realizes mid-task it needs a database tool. Traditionally, you'd stop, edit config, restart. Octomind lets the AI handle this itself.
Solution
The built-in mcp tool lets the AI add, enable, and remove MCP servers during a live session.
How It Works
The AI can manage its own tool ecosystem at runtime:
User: "Check the open GitHub issues for this repo"
AI (thinking): "I don't have GitHub tools. Let me add the GitHub MCP server."
AI calls: mcp(action="add", name="github", server_type="http",
url="https://api.github.com/mcp", timeout_seconds=30)
AI calls: mcp(action="enable", name="github")
AI: "Connected to GitHub MCP server. Found 12 open issues..."
No config changes. No restart. The AI recognized a gap and filled it.
Example: Full Dynamic Tool Discovery
User: "I need to analyze our database schema and cross-reference with GitHub issues"
AI:
1. mcp(action="list")
-> Shows: core (builtin), filesystem (stdio) -- no GitHub, no DB tools
2. mcp(action="add", name="github", server_type="http",
url="https://api.github.com/mcp", timeout_seconds=30)
-> "Server 'github' registered"
3. mcp(action="enable", name="github")
-> "Server 'github' enabled. Available tools: github_list_issues, github_search_code, ..."
4. mcp(action="add", name="db", server_type="stdio",
command="mcp-postgres", args=["--connection", "postgresql://..."])
-> "Server 'db' registered"
5. mcp(action="enable", name="db")
-> "Server 'db' enabled. Available tools: query, list_tables, describe_table, ..."
6. Now uses both servers to cross-reference issues with schema
7. When done:
mcp(action="disable", name="db") # Clean up sensitive connection
Persisting Dynamic Servers
If a dynamically added server proves useful, persist it to config:
AI calls: mcp(action="persist", name="github")
-> Saved to ~/.local/share/octomind/config/mcp-github.toml
-> Auto-binds to current role for future sessions
Remove persisted config:
AI calls: mcp(action="unpersist", name="github")
-> Removed from config directory
Stdio Servers (Local Tools)
The AI can spin up local tool servers too:
AI calls: mcp(action="add", name="octocode", server_type="stdio",
command="octocode", args=["mcp", "--path=."], timeout_seconds=240)
AI calls: mcp(action="enable", name="octocode")
-> "Server 'octocode' enabled. Available tools: semantic_search, view_signatures, graphrag"
Tool Filtering
Only expose specific tools from a server:
AI calls: mcp(action="add", name="github", server_type="http",
url="https://api.github.com/mcp",
tools=["github_list_issues", "github_create_issue"])
Or use wildcards:
tools=["github_*"]
Dynamic Agents Too
The same pattern works for agents. The AI can create specialized agents at runtime:
AI calls: agent(action="add", name="db_expert",
description="Analyzes database schemas and queries",
system="You are a database expert...",
server_refs=["filesystem", "db"],
allowed_tools=["filesystem:view", "db:*"])
AI calls: agent(action="enable", name="db_expert")
AI calls: agent_db_expert(task="Analyze the schema for N+1 query risks")
Practical Scenario: Self-Assembling Toolkit
Prompt the AI to assess what it needs:
User: "You have access to the filesystem. Before you start working on this project,
check what tools would be useful and set them up."
AI:
1. Reads project files: package.json, Cargo.toml, docker-compose.yml
2. Discovers: Rust project with PostgreSQL, uses GitHub for issues
3. Sets up:
- octocode (code search)
- postgres MCP (database)
- github MCP (issues/PRs)
4. Reports: "I've connected 3 additional tool servers. Ready to work."
MCP Management Commands
| Action | Description |
|---|---|
list |
Show all servers with status |
add |
Register new server (doesn't connect) |
enable |
Connect and activate tools |
disable |
Deactivate (keep config) |
remove |
Unregister entirely |
persist |
Save to config for future sessions |
unpersist |
Remove from saved config |
Session command equivalent: /mcp list, /mcp add ..., etc.
Key Points
- The AI can add/remove MCP servers without human intervention
- Supports both HTTP (remote) and stdio (local process) servers
persistsaves a dynamic server to config for future sessions- Tool filtering prevents exposing unnecessary capabilities
- Dynamic agents follow the same add/enable/disable/remove pattern
- This is unique to Octomind -- most AI tools require static tool configuration
- The AI can assess a project and self-configure its toolkit