The Opera Omnia MCP server provides programmatic access to the rich collection of JSON datasets from the Opera Omnia project. It enables developers, storytellers, and AI applications to easily access, combine, and generate creative content for games, interactive fiction, chatbots, and more.
shell
npm install
shell
npm run build
npm start
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.
List all available data categories.
const result = await use_mcp_tool({
server_name: "opera-omnia",
tool_name: "list_categories",
arguments: {}
});
List all datasets within a category.
const result = await use_mcp_tool({
server_name: "opera-omnia",
tool_name: "list_datasets",
arguments: {
category: "characters"
}
});
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 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 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 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 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" }
}
}
});
List of all available data categories.
const result = await access_mcp_resource({
server_name: "opera-omnia",
uri: "opera-omnia://categories"
});
List of datasets available in a specific category.
const result = await access_mcp_resource({
server_name: "opera-omnia",
uri: "opera-omnia://category/characters"
});
Contents of a specific dataset.
const result = await access_mcp_resource({
server_name: "opera-omnia",
uri: "opera-omnia://dataset/characters/personalities"
});
We have several ideas for future enhancements to the Opera Omnia MCP server:
For detailed information about the current and past releases, see the RELEASE_NOTES.md file.
This project is licensed under the MIT License - see the LICENSE.md file for details.
The Opera Omnia MCP server provides programmatic access to the rich collection of JSON datasets from the Opera Omnia project. It enables developers, storytellers, and AI applications to easily access, combine, and generate creative content for games, interactive fiction, chatbots, and more.
No releases published
No packages published