omnifabric-mcp
Provides SQL execution capabilities against MySQL-compatible databases, allowing any SQL statement to be run and results returned as JSON.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@omnifabric-mcpshow me the databases"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
omnifabric-mcp
MCP server giving an LLM SQL access to a CloudSigma OmniFabric database (MatrixOne-compatible, MySQL wire protocol).
What It Does
Exposes one MCP tool, run_query, that runs any SQL statement against your OmniFabric/MatrixOne instance over the standard MySQL wire protocol (via mysql2) and returns the rows as JSON. No schema-specific tooling, no query rewriting — whatever SQL you (or the LLM) send is what runs.
Related MCP server: mcp-mysql-explorer
Prerequisites
Node.js 20.6+ (uses the native
--env-fileflag for local testing)A running OmniFabric instance and its connection details: host, port (default 6001), account UUID, username, role, password
An MCP-compatible client (Claude Code, Claude Desktop, etc.)
Why a custom server instead of an existing one
Memoria (
matrixorigin/Memoria) is a semantic-memory product built on MatrixOne (store/retrieve/branch/merge memories), not a raw SQL passthrough tool — doesn't fit.mcp-server-mysql (generic community MySQL MCP server) looked like a fit but has two bugs for this use case: it hard-rejects any statement its SQL parser doesn't classify as
SELECT(soSHOW DATABASES— the exact acceptance-test query — gets rejected), and it wraps every query inSET SESSION TRANSACTION READ ONLY, which isn't confirmed to work on MatrixOne/OmniFabric.So: this repo, built directly on
mysql2+@modelcontextprotocol/sdk(both do the heavy lifting — no custom wire protocol). One tool,run_query, passes SQL straight through.
Safety model
There is no app-level statement filtering (that's what broke the alternative above). Instead: connect with a read-only DB role. Ask CloudSigma/whoever provisioned the instance for a role scoped to SELECT only, or check whether OmniFabric supports creating one beyond accountadmin. Only point this server at a write-capable role if you actually need DDL/write access.
Quick install via AI agent
Give this prompt to Claude Code (or any AI coding agent with shell access):
Install the OmniFabric MCP server. Clone https://github.com/Momosasu/omnifabric-mcp.git, run
npm install, copy.env.exampleto.envand ask me for my OmniFabric credentials (host, account UUID, username, role, password) to fill it in, add it to my MCP config at~/.claude/.mcp.jsonwithargsset to["--env-file=<absolute path to .env>", "<absolute path to index.js>"], and verify the connection by callingrun_querywithSHOW DATABASES.
Quick Start
1. Install
git clone https://github.com/Momosasu/omnifabric-mcp.git
cd omnifabric-mcp
npm install2. Configure credentials
cp .env.example .envFill in .env with the credentials from your OmniFabric provisioning (CloudSigma console or mo_ctl deploy output):
OMNIFABRIC_HOST=your-instance.omni.example.cloudsigma.com
OMNIFABRIC_PORT=6001
OMNIFABRIC_ACCOUNT=your-account-uuid
OMNIFABRIC_USER=your-username
OMNIFABRIC_ROLE=your-role
OMNIFABRIC_PASSWORD=your-passwordOptional: sanity-check the login works before touching MCP at all:
mysql -h <OMNIFABRIC_HOST> -P 6001 -u <ACCOUNT>:<USER>:<ROLE> -pThen validate your .env assembles into a well-formed config (no live DB connection made):
npm test3. Add to Claude Code
Add to your MCP config (~/.claude/.mcp.json or project .mcp.json), pointing at the .env you just filled in — no need to re-enter credentials here:
{
"mcpServers": {
"omnifabric": {
"command": "node",
"args": ["--env-file=/path/to/omnifabric-mcp/.env", "/path/to/omnifabric-mcp/index.js"]
}
}
}Replace /path/to/omnifabric-mcp with your actual path.
4. Verify
Ask Claude: "Use run_query to run SHOW DATABASES"
Tools
run_query(sql)— runs any SQL statement, returns rows as JSON.
That's it. No create_snapshot/restore_snapshot/UDF tools yet — the PRD explicitly says not to add those speculatively. Add a wrapper tool once there's a concrete use case for a specific OmniFabric SQL-Reference statement raw passthrough doesn't cover well.
Available Tools
1 toolrun_queryA
Run a SQL statement against the OmniFabric database and return the results. Safety is enforced by the DB user's role/grants, not by this tool — use a read-only account unless writes are explicitly needed.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | SQL statement to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that safety is enforced by DB user roles/grants, not the tool, which is useful. However, it omits details like error handling, return format, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are direct and efficient. Every sentence adds value with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description covers purpose and critical safety advice. It could be enhanced by specifying that results are returned in a structured format, but it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already describes the 'sql' parameter. The description repeats 'SQL statement' without adding new meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs a SQL statement against the OmniFabric database and returns results. The verb 'run' and resource 'SQL statement' are specific, and no sibling tools are present for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on safety by recommending a read-only account unless writes are explicitly needed. It does not specify when not to use the tool or list alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v1.0.0- First observed
run_query
TDQS
Only one tool exists, so there is no possibility of ambiguity between tools.
With a single tool, naming conventions are trivially consistent.
A single SQL query tool is too few for a database server; agents would likely need schema exploration or metadata tools.
The server lacks essential tools for database interaction, such as listing tables or describing schemas, making it severely incomplete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server for AI-driven data ops. Create apps, manage schemas, and CRUD structured data.
Query, join, profile, clean and convert CSV/JSON/Parquet with server-side DuckDB over MCP.
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for interacting with MariaDB databases, supporting standard SQL operations and optional vector/embedding search.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that connects AI agents to MySQL databases for schema exploration, data querying, and SQL execution via natural language.2MIT
- AlicenseAqualityCmaintenanceA Model Context Protocol (MCP) server for interacting with MySQL databases. Provides tools for querying, inspecting, and modifying databases directly from Claude.716MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for MySQL/MariaDB/Aurora MySQL that enables executing SQL queries, explaining query plans, inspecting schema, checking health, and running diagnostic playbooks through Claude.Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Momosasu/omnifabric-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server