Opera Omnia MCP Server logo

Opera Omnia MCP Server

by triptych

The Opera Omnia MCP server provides access to a rich collection of JSON datasets from the Opera Omnia project. It's designed to offer creative content for games, storytelling, and bot development.

View on GitHub

Last updated: N/A

Opera Omnia MCP Server

An MCP server that provides access to the rich collection of JSON datasets from the Opera Omnia project, a comprehensive library of creative content for games, storytelling, and bot development.

Features

  • Access to all Opera Omnia datasets
  • Random selection from datasets
  • Filtering datasets by criteria
  • Combining multiple datasets
  • Generating creative content using templates

Installation

  1. Clone this repository
  2. Install dependencies:
npm install
  1. Build the project:
npm run build

Usage

Running the Server

npm start

MCP Configuration

Add the following to your MCP settings file:

{
  "mcpServers": {
    "opera-omnia": {
      "command": "node",
      "args": ["path/to/opera-omnia-mcp/build/index.js"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

Replace path/to/opera-omnia-mcp with the actual path to this project.

Available Tools

list_categories

List all available data categories.

const result = await use_mcp_tool({
  server_name: "opera-omnia",
  tool_name: "list_categories",
  arguments: {}
});

list_datasets

List all datasets within a category.

const result = await use_mcp_tool({
  server_name: "opera-omnia",
  tool_name: "list_datasets",
  arguments: {
    category: "characters"
  }
});

get_dataset

Get the complete contents of a specific dataset.

const result = await use_mcp_tool({
  server_name: "opera-omnia",
  tool_name: "get_dataset",
  arguments: {
    category: "characters",
    dataset: "personalities"
  }
});

get_random_item

Get a random item from a specific dataset.

const result = await use_mcp_tool({
  server_name: "opera-omnia",
  tool_name: "get_random_item",
  arguments: {
    category: "characters",
    dataset: "personalities"
  }
});

get_filtered_items

Get items from a dataset that match specific criteria.

const result = await use_mcp_tool({
  server_name: "opera-omnia",
  tool_name: "get_filtered_items",
  arguments: {
    category: "characters",
    dataset: "personalities",
    filter: "brave"
  }
});

combine_datasets

Combine multiple datasets and get random selections.

const result = await use_mcp_tool({
  server_name: "opera-omnia",
  tool_name: "combine_datasets",
  arguments: {
    datasets: [
      { category: "characters", dataset: "personalities" },
      { category: "characters", dataset: "backstories" }
    ],
    count: 3
  }
});

generate_content

Generate creative content based on multiple datasets.

const result = await use_mcp_tool({
  server_name: "opera-omnia",
  tool_name: "generate_content",
  arguments: {
    template: "A {adjective} {class} must {quest} to obtain {artifact}",
    datasets: {
      adjective: { category: "attributes", dataset: "adjectives" },
      class: { category: "rpg", dataset: "classes" },
      quest: { category: "situations", dataset: "quests" },
      artifact: { category: "equipment", dataset: "artifacts" }
    }
  }
});

Available Resources

opera-omnia://categories

List of all available data categories.

const result = await access_mcp_resource({
  server_name: "opera-omnia",
  uri: "opera-omnia://categories"
});

opera-omnia://category/{category}

List of datasets available in a specific category.

const result = await access_mcp_resource({
  server_name: "opera-omnia",
  uri: "opera-omnia://category/characters"
});

opera-omnia://dataset/{category}/{dataset}

Contents of a specific dataset.

const result = await access_mcp_resource({
  server_name: "opera-omnia",
  uri: "opera-omnia://dataset/characters/personalities"
});

Future Enhancements

We have several ideas for future enhancements to the Opera Omnia MCP server:

  1. Advanced Content Generation: Add more sophisticated content generation capabilities beyond simple template substitution.

  2. Improved Caching: Implement better caching mechanisms for improved performance, especially for frequently accessed datasets.

  3. User-Contributed Datasets: Add support for user-contributed datasets, allowing users to extend the available content.

  4. Visualization Tools: Create visualization tools for exploring the data and understanding relationships between different datasets.

  5. Local Data Files: Add support for local data files as an alternative to fetching from GitHub.

  6. Integration Examples: Provide more examples of integrating the MCP server with different applications and frameworks.

Release Notes

For detailed information about the current and past releases, see the RELEASE_NOTES.md file.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.