Extend It

Plug in more MCP servers and let your virtual world reach outside the grid.

1 Why Extend?

The stack ships with two MCP bridges — console and in-world bot — but the Model Context Protocol ecosystem is huge. Adding extra MCP servers lets your AI agent read and write real-world data, turning your grid from a sandbox into an active participant in your workflows.

Database Access

Query the OpenSimulator MariaDB backend to inspect users, regions, inventory, or land data with natural language.

Email & Messaging

Let the bot send alerts, invites, or status updates via SMTP, Slack, Discord, or Matrix.

Webhooks & APIs

Trigger external services: open doors in a smart home, post to a CMS, or call a game server API.

Calendar & Tasks

Schedule in-world events, create reminders, or sync with CalDAV / todo backends.

File & Asset Storage

Read from S3, MinIO, or a NAS to import OARs, textures, and sounds, or export region backups.

Monitoring & Logs

Connect to Prometheus, Grafana, or Loki so the agent can diagnose grid health on request.

2 How to Add a New MCP Server

The stack runs MCP over HTTP. Each MCP server is a separate container or process that exposes its tools at a URL, and Opencode connects to it as a remote server. To add a new MCP server, run it somewhere reachable on your network, then add its URL to the mcp section of opencode.json and restart Opencode.

  1. Deploy the MCP server you want to add (for example, as another Docker service on the same compose network).
  2. Edit /workspace/opencode.json inside the Opencode container (or the mounted workspace volume).
  3. Add a new entry under mcp with "type": "remote" and the server's HTTP URL.
  4. Restart the Opencode service so it picks up the new tools: docker compose restart opensim-opencode.
  5. Ask the bot what new tools are available to confirm the connection.
{
  "mcp": {
    "local_host_mcp": {
      "type": "remote",
      "url": "http://opensim-console2mcp:8997/mcp",
      "enabled": true
    },
    "metaverse_mcp": {
      "type": "remote",
      "url": "http://opensim-metaverse2mcp:8999/mcp",
      "enabled": true
    },
    "blender_mcp": {
      "type": "remote",
      "url": "http://opensim-blender:8996/mcp",
      "enabled": true
    },
    "database_mcp": {
      "type": "remote",
      "url": "http://mcp-database:8080/mcp",
      "enabled": true
    },
    "email_mcp": {
      "type": "remote",
      "url": "http://mcp-email:8080/mcp",
      "enabled": true
    }
  }
}
Server names and URL paths vary by implementation. Check the README of the MCP server you are adding for the exact HTTP endpoint and any required authentication or environment variables.

3 Ideas to Explore

  • Inventory reports: "List all users with more than 1,000 items."
  • Event invites: "Email everyone about the Friday party and add it to their calendar."
  • Smart regions: "If no one is in the club for 30 minutes, turn off the lights and music."
  • Content pipelines: "Download the latest OAR from S3 and load it into the staging region."
  • Support bot: "Check recent error logs and tell me if any regions crashed."
  • Commerce: "Generate a weekly sales CSV from the economy tables and upload it to Drive."