Skip to main content
Glama

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

Related MCP server: Chroma MCP Server

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.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/triptych/opera-omnia-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server