sqlmate-mcp
sqlmate-mcp is a zero-config MCP server that connects AI assistants like Claude to SQL databases (MySQL, MariaDB, SQLite, MSSQL, PostgreSQL), with a live browser GUI for visual interaction.
Connection Management
Automatically reads
DB_*env vars orDATABASE_URLfrom.env/.sqlmatercfileslist_connections— retrieve all configured connections for a projectadd_connection— dynamically add connections via URL, config file, or individual parameters (host, port, user, password, etc.)
Schema Introspection
list_tables— list all tables in a connectiondescribe_table— get column names, types, nullability, and primary key infoget_schema— retrieve a full schema graph including foreign keys and indexes
Query Execution
run_query— safely execute read-only statements (SELECT, EXPLAIN, SHOW, PRAGMA)run_write— execute INSERT, UPDATE, DELETE, DDL operations with a built-in two-step safety confirmation for risky actions (no WHERE clause, DROP, TRUNCATE)explain_query— get execution plans with an optionalanalyzeflag for real timing
Browser GUI (auto-opens at http://localhost:4737)
Paginated table browser with inline cell editing and row deletion
SQL editor with EXPLAIN and per-query timing
Interactive ERD visualizer with foreign-key edges
Live feed of all MCP tool calls made by the AI agent
Multi-Project Support — Multiple projects share a single GUI dashboard, with connections grouped by project and automatic host failover.
Provides tools to connect to and interact with MariaDB databases: list tables, describe schema, run read queries, and execute write operations with risk assessment for destructive commands.
Provides tools to connect to and interact with MySQL databases: list tables, describe schema, run read queries, and execute write operations with risk assessment for destructive commands.
Provides tools to connect to and interact with SQLite databases: list tables, describe schema, run read queries, and execute write operations with risk assessment for destructive commands.
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., "@sqlmate-mcpshow me the tables in my database"
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.
🗄️ sqlmate-mcp
Give Claude a database. Give yourself a GUI.
Zero-config SQL database MCP server with a live browser GUI — for Claude Code, Zed, and any MCP client.
Point it at your project, and Claude can explore your MySQL · MariaDB · SQLite · MSSQL · PostgreSQL databases while you browse, edit, and query them in a beautiful browser dashboard that updates in real time.
npm install -g sqlmate-mcp
claude mcp add --transport stdio sqlmate-mcp sqlmate-mcpThat's the whole setup. It reads your existing .env — no config files to write.
✨ Why sqlmate-mcp?
Most database MCP servers give the AI tools and leave you in the dark. sqlmate-mcp does both halves:
🤖 For Claude — 8 focused tools to inspect schemas, run queries, and make guarded writes.
👀 For you — a browser GUI that opens automatically, so you can watch what the agent touches, edit data by hand, and run your own SQL side by side.
No API keys. No cloud. No node-gyp. It reads the config you already have.
Related MCP server: Database Tools for Claude AI
🚀 Features
⚡ Zero config | Reads |
🔌 5 databases | MySQL, MariaDB, SQLite, MSSQL, and PostgreSQL from one server |
🧠 Schema intelligence |
|
📊 Query plans |
|
🛡️ Write safety | DELETE/UPDATE without |
🖥️ Browser GUI | Paginated grid, inline cell editing, row delete, schema view, and a SQL editor with EXPLAIN + timing |
🕸️ ERD visualizer | Interactive entity-relationship diagram per connection, with foreign-key edges and click-to-open tables |
🗂️ Unified dashboard | Open several projects at once and see them all in one GUI, grouped by project |
📡 Live agent feed | Watch every MCP tool call stream into the browser in real time |
🪶 No native builds | SQLite uses Node's built-in |
📦 Setup
1. Install
npm install -g sqlmate-mcp2. Register with your editor
claude mcp add --transport stdio sqlmate-mcp sqlmate-mcpOpen your Zed settings.json (Cmd/Ctrl + ,) and add:
{
"context_servers": {
"sqlmate-mcp": {
"command": "sqlmate-mcp",
"args": [],
"env": {}
}
}
}To pin a specific project's database, set SQLMATE_PROJECT_ROOT in the env block:
{
"context_servers": {
"sqlmate-mcp": {
"command": "sqlmate-mcp",
"args": [],
"env": { "SQLMATE_PROJECT_ROOT": "/absolute/path/to/your/project" }
}
}
}The sqlmate-mcp tools then appear in the Zed Agent Panel.
3. That's it
sqlmate-mcp reads connections from the root of whichever project you open (the directory you launch your editor from). Each project uses its own .env or .sqlmaterc — no global config. See Connection Setup.
🔧 Connection Setup
sqlmate-mcp reads connections from your project root at startup (defaults to cwd, override with SQLMATE_PROJECT_ROOT).
Option 1 — .env
Laravel-style variables:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=myapp
DB_USERNAME=root
DB_PASSWORD=secretOr a connection URL:
DATABASE_URL=mysql://root:secret@127.0.0.1:3306/myapp
DATABASE_URL=sqlite:///relative/path/app.db
DATABASE_URL=sqlserver://sa:pass@localhost:1433/master
DATABASE_URL=postgres://postgres:secret@127.0.0.1:5432/myappSupported schemes: mysql, mariadb, sqlite, sqlserver / mssql, pgsql / postgres / postgresql.
Option 2 — .sqlmaterc
A JSON array of connection objects in your project root:
[
{ "name": "Local MySQL", "type": "mysql", "host": "127.0.0.1", "port": 3306, "username": "root", "password": "", "database": "myapp" },
{ "name": "App SQLite", "type": "sqlite", "path": "./database/app.db" },
{ "name": "Local Postgres", "type": "postgres", "host": "127.0.0.1", "port": 5432, "username": "postgres", "password": "", "database": "myapp" }
]A copy-paste starting point lives in docs/sqlmaterc-example.json.
🛠️ MCP Tools
Tool | Description |
| List all detected connections (id, name, type, source) |
| Add a connection for the session via URL, config file, or params |
| List table names for a connection |
| Column names, types, nullability, and primary key info |
| Full schema graph — columns, PKs, foreign keys, and indexes |
| Run a read-only query (SELECT, EXPLAIN, SHOW, PRAGMA) |
| Return the execution plan; |
| Run an INSERT, UPDATE, DELETE, or DDL statement |
run_writeruns a risk assessment first. Operations affecting all rows (noWHERE),DROP,TRUNCATE, orALTER…DROP COLUMNpause and ask Claude to confirm withconfirm: truebefore proceeding.
🖥️ Browser GUI
Opens automatically at http://localhost:4737 on startup.
📄 Browse any table with a paginated data grid
✏️ Click a cell to edit it inline; delete rows with the trash icon
🔀 Toggle between data view and column schema view
💬 Run arbitrary SQL in the built-in editor, with Explain for the plan and per-query timing
🕸️ Visualize a database as an interactive ERD — PK/FK badges, relationship edges, click-to-open
🔄 Reconnect a database without restarting the server
📡 Watch a live feed of every MCP tool call Claude makes
🗂️ Multiple Projects, One Dashboard
Open your editor in more than one project at a time and each runs its own sqlmate-mcp process — but you only ever see one browser GUI, showing all projects at once.
The first process to start binds the GUI port (
SQLMATE_PORT, default4737), becomes the host, and opens the browser.Every other process detects the port is taken, confirms it's a compatible sqlmate-mcp host, and attaches — no second tab, no error.
The sidebar groups connections by project (each labeled with its host/database); open tables, run SQL, and view ERDs across projects side by side. The live feed spans every project, labeled by project.
If the host exits, a remaining attached process automatically takes over — the GUI keeps working.
Fully automatic, zero configuration.
⚙️ Environment Variables
Variable | Default | Description |
|
| Directory to search for |
|
| Port for the browser GUI |
| — | Set to |
🧑💻 Development
git clone https://github.com/adamrpostjr/sqlmate-mcp.git
cd sqlmate-mcp
npm install
npm run build # builds the Svelte GUI into /public
node src/index.js # start the backend (serves the GUI at :4737)
cd frontend && npm run dev # frontend hot-reload (proxies /api to :4737)The frontend is Svelte 5 + Vite + Tailwind. Production build output goes to /public, served statically by Express. Backend is pure Node.js ES modules — no TypeScript, no build step.
📋 Requirements
Node.js ≥ 22.5 (for the native
node:sqlitemodule)
📄 License
MIT · Built by Adam Post
If sqlmate-mcp saves you a trip to a database client, consider giving it a ⭐
Available Tools
6 toolsadd_connectionA
Configure a database connection for this session. Provide ONE of: (a) url — a connection URL like mysql://user:pass@host:3306/db or sqlite:///path/to/db.sqlite, (b) file — an absolute path to a .sqlmaterc (JSON) or .env file containing DB credentials, (c) individual params — type (mysql|sqlite|mssql), host, port, username, password, database, and optionally name. After adding, call list_connections to verify.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Connection URL (mysql://, sqlite://, sqlserver://) | |
| file | No | Absolute path to a .sqlmaterc or .env file | |
| host | No | Database host | |
| name | No | Display name for this connection | |
| path | No | File path for SQLite databases | |
| port | No | Database port | |
| type | No | Database type | |
| database | No | Database name | |
| password | No | Database password | |
| username | No | Database username |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains the configuration action and suggests a verification step, but lacks details on side effects, idempotency, or error handling.
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?
The description is a single paragraph of four sentences, front-loaded with the purpose, includes examples and a post-usage suggestion, and has no redundant words.
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?
Given 10 parameters with full schema coverage, no required fields, and no output schema, the description adequately covers how to use the tool and what to expect, but lacks details on success/failure behavior or error handling.
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 coverage is 100% with basic descriptions; the description adds significant value by explaining the three connection modes with concrete URL examples and clarifying optionality among parameter groups.
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 states 'Configure a database connection for this session' with a specific verb and resource, and clearly distinguishes from sibling tools like list_connections and run_query.
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?
It enumerates three mutually exclusive modes (url, file, individual params) and recommends calling list_connections to verify, providing clear usage context without explicit alternatives or when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_tableB
Get column schema for a table
| Name | Required | Description | Default |
|---|---|---|---|
| table | Yes | Table name | |
| connectionId | Yes | Connection ID from list_connections | |
| project_root | No | Absolute path to the current project directory (same value passed to list_connections) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description offers no additional behavioral context beyond the basic operation. There is no mention of how the tool handles errors, permissions, or whether it might have side effects. For a tool with no annotations, this is insufficient.
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?
The description is a single sentence with no fluff, but it could be slightly more informative without being verbose. It earns a 4 for being concise and front-loaded.
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?
Given the lack of output schema and annotations, the description does not provide enough context about the return format, edge cases, or prerequisites. The tool has three parameters but the description is minimal.
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 baseline is 3. The description adds no extra meaning beyond what is already in the input schema; for instance, 'project_root' is not explained further.
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 'Get column schema for a table' uses a specific verb and resource, clearly distinguishing it from sibling tools like list_tables (which lists table names) and run_query (which executes SQL queries).
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?
No explicit usage guidance or alternatives are mentioned; however, the context of sibling tools implies this tool is used after listing tables to inspect their schema. This is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_connectionsA
List all configured database connections. IMPORTANT: Always pass project_root set to the absolute path of the current project directory. This ensures the correct database connections are loaded for the active project, since the server may be shared across multiple projects. If no connections are found, returns setup instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| project_root | No | Absolute path to the current project directory. Always provide this so connections are loaded for the right project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries full burden. It discloses that it lists connections and returns setup instructions if none exist, implying a read-only operation. However, it does not explicitly state the absence of side effects, which would be beneficial.
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?
The description is concise with two purposeful sentences plus a highlighted important note. It is front-loaded with the main action and provides critical usage guidance efficiently.
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?
Given the lack of output schema, the description adequately conveys what the tool returns (a list or setup instructions). It is complete enough for a simple listing tool, though it could optionally mention the format of the returned list.
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?
With 100% schema coverage, the description adds value by explaining why the project_root parameter is important (shared server context) beyond the schema's description. It reinforces the correct usage without redundancy.
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 'lists all configured database connections' with a specific verb and resource. It distinguishes well from siblings that perform different operations like adding connections or querying tables.
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?
Includes an important note about always providing the project_root parameter with an absolute path, explaining why it's needed for multi-project server sharing. It also mentions what happens if no connections are found, but lacks explicit exclusions or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tablesA
List all tables in a database connection
| Name | Required | Description | Default |
|---|---|---|---|
| connectionId | Yes | Connection ID from list_connections | |
| project_root | No | Absolute path to the current project directory (same value passed to list_connections) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It correctly implies a read operation but lacks details on authentication, rate limits, or output behavior. Acceptable but minimal.
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?
A single, efficient sentence with no wasted words. Front-loaded and clear.
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?
The tool is simple but the description does not mention the return format (e.g., list of table names). With no output schema, this information would be helpful.
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%. The description adds no additional meaning beyond the schema's parameter descriptions, so 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 verb 'list' and resource 'tables in a database connection', distinguishing it from sibling tools like describe_table and run_query.
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?
No guidance on when to use this tool versus alternatives (e.g., describe_table). The description does not provide context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_queryA
Run a read-only SQL query (SELECT, EXPLAIN, SHOW, PRAGMA). Write statements are rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | SQL query to run | |
| connectionId | Yes | Connection ID from list_connections | |
| project_root | No | Absolute path to the current project directory (same value passed to list_connections) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the read-only nature and rejection of writes, but lacks details on error handling, rate limits, or side effects beyond the core behavior.
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?
A single, direct sentence with no extraneous information. Every word is purposeful and front-loaded with the most critical detail.
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?
The description is adequate for a simple read-only query tool, but lacks details about return format, pagination, or limitations (e.g., query timeout). Without an output schema, the agent may need more context about results.
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 coverage is 100%, so description adds no additional meaning beyond the schema. The description does not elaborate on parameter usage or constraints beyond what the schema already provides.
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 read-only SQL queries (SELECT, EXPLAIN, SHOW, PRAGMA) and explicitly rejects write statements, making the purpose unambiguous and distinguishing it from the sibling 'run_write'.
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 specifies allowed query types and that write statements are rejected, providing clear context for when to use. However, it does not explicitly state alternatives or when not to use, though the sibling 'run_write' implies the contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_writeA
Run a write SQL statement (INSERT, UPDATE, DELETE, TRUNCATE, DROP, ALTER). IMPORTANT: For destructive operations (DELETE, TRUNCATE, DROP, UPDATE without WHERE, ALTER TABLE ... DROP COLUMN) you MUST first call this tool WITHOUT confirm to get a risk summary, show it to the user and ask for explicit approval, then call again with confirm: true. Never pass confirm: true on the first call without user approval.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | SQL statement to execute | |
| confirm | No | Set to true only after the user has explicitly approved the risk shown by a prior call to this tool | |
| connectionId | Yes | Connection ID from list_connections | |
| project_root | No | Absolute path to the current project directory (same value passed to list_connections) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the two-step confirmation requirement for destructive operations, which is critical. However, does not describe the format of the risk summary return or any error/authentication behavior. With no annotations, more could be said, but the main safety feature is well communicated.
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, both essential. First sentence states purpose, second provides critical usage instruction. No wasted words.
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?
Covers purpose, confirmation flow, and sibling relationship. Could be improved by explicitly stating what happens when confirm is false (returns risk summary) and any preconditions (e.g., user authentication). But overall sufficient for an agent to use correctly.
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 coverage is 100%, but description adds meaningful context: explains confirm parameter's usage pattern and notes connectionId comes from list_connections. This goes beyond the schema's descriptions.
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?
Description explicitly states it runs write SQL statements (INSERT, UPDATE, DELETE, TRUNCATE, DROP, ALTER), clearly distinguishing from the read-only sibling run_query.
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?
Provides explicit step-by-step guidance: for destructive operations, first call without confirm to get a risk summary, then call with confirm: true only after user approval. Also warns against passing confirm: true on first call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool addresses a distinct operation: connection setup, schema inspection, connection listing, table listing, read-only queries, and write queries. No functional overlap exists.
All tool names follow a consistent 'verb_noun' pattern using snake_case (e.g., describe_table, run_query), making the API predictable and easy to navigate.
With 6 tools, the surface is well-scoped for a database management tool, covering essential tasks without being overly minimal or bloated.
The set covers core CRUD and schema inspection, but lacks connection management operations (e.g., remove, update) and support for other database objects like views or stored procedures, which are minor gaps.
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 connecting claude.ai, ChatGPT and other AI apps to your own computer
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Related MCP Servers
- AlicenseCqualityDmaintenanceAn MCP server that enables MySQL database integration with Claude. You can execute SQL queries and manage database connections.29MIT
- AlicenseBqualityDmaintenanceMCP server that allows Claude AI to interact directly with MySQL databases, enabling query execution and table information retrieval through natural language.154MIT
- AlicenseAqualityBmaintenanceMCP server for Claude that connects to MySQL, MariaDB, and SQLite databases. Query your databases using natural language.3MIT
- AlicenseNot gradedqualityDmaintenanceA database-agnostic MCP server that enables natural language queries to your database through Claude or Copilot, automatically writing and executing SQL.16MIT
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/adamrpostjr/sqlmate-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server