🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@database-mcp/core

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@database-mcp/core - npm Package Compare versions

Comparing version
0.2.2
to
0.3.0
+6
-0
dist/config.d.ts

@@ -17,5 +17,11 @@ import { Secret } from "./secret.js";

}
export interface TransportConfig {
type: "stdio" | "http";
/** http only; the server binds 127.0.0.1. */
port: number;
}
export interface Config {
connection: Connection;
guardrails: Guardrails;
transport: TransportConfig;
}

@@ -22,0 +28,0 @@ export interface ConfigOptions {

@@ -44,2 +44,3 @@ import { readFileSync } from "node:fs";

const fg = (file.guardrails ?? {});
const ft = (file.transport ?? {});
const P = opts.envPrefix;

@@ -84,2 +85,6 @@ const pwVar = opts.passwordEnvVar ?? `${P}_PASSWORD`;

},
transport: {
type: (flag("--transport") ?? ft.type ?? "stdio"),
port: Number(flag("--port") ?? ft.port ?? 8080),
},
};

@@ -86,0 +91,0 @@ // Debug aid; goes through the redacting serializer (Secret.toJSON = "***").

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
export type { DatabaseAdapter, QueryOptions, QueryResult, TableSummary, TableDescription, ColumnInfo, IndexInfo, ForeignKeyInfo, } from "./adapter.js";
export { guardSql } from "./sql-guard.js";
export { loadConfig, type Config, type Connection, type ConfigOptions, type Guardrails } from "./config.js";
export { loadConfig, type Config, type Connection, type ConfigOptions, type Guardrails, type TransportConfig, } from "./config.js";
export { Secret, redact, registerSecret, sanitizeDsn, installLogRedaction } from "./secret.js";
export { buildServer } from "./server.js";
export { serve } from "./serve.js";
export { guardSql } from "./sql-guard.js";
export { loadConfig } from "./config.js";
export { loadConfig, } from "./config.js";
export { Secret, redact, registerSecret, sanitizeDsn, installLogRedaction } from "./secret.js";

@@ -4,0 +4,0 @@ export { buildServer } from "./server.js";

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAqE,MAAM,aAAa,CAAC;AAC5G,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,UAAU,GAMX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
import type { DatabaseAdapter } from "./adapter.js";
import type { Config } from "./config.js";
/**
* Connects the adapter, registers the tools, and serves over stdio.
* The whole lifecycle an engine entry point needs — an engine package is
* just an adapter plus a few lines calling this.
* Connects the adapter, registers the tools, and serves over the configured
* transport (stdio by default, Streamable HTTP with --transport http).
* The whole lifecycle an engine entry point needs.
*/
export declare function serve(adapter: DatabaseAdapter, config: Config, version: string): Promise<void>;
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
import http from "node:http";
import { randomUUID } from "node:crypto";
import { installLogRedaction, redact } from "./secret.js";
import { buildServer } from "./server.js";
/**
* Connects the adapter, registers the tools, and serves over stdio.
* The whole lifecycle an engine entry point needs — an engine package is
* just an adapter plus a few lines calling this.
* Connects the adapter, registers the tools, and serves over the configured
* transport (stdio by default, Streamable HTTP with --transport http).
* The whole lifecycle an engine entry point needs.
*/

@@ -21,2 +25,6 @@ export async function serve(adapter, config, version) {

}
if (config.transport.type === "http") {
await serveHttp(adapter, config, version);
return;
}
const server = buildServer(adapter, config.guardrails, version);

@@ -33,2 +41,64 @@ const shutdown = async () => {

}
/**
* Streamable HTTP (the current spec transport; SSE is deprecated and not
* implemented). One MCP session per client, all sharing the adapter's pool.
* Binds 127.0.0.1 only; remote auth is deliberately out of scope for now.
*/
async function serveHttp(adapter, config, version) {
const transports = new Map();
const httpServer = http.createServer(async (req, res) => {
try {
if (!req.url?.startsWith("/mcp")) {
res.writeHead(404).end();
return;
}
let body;
if (req.method === "POST") {
const chunks = [];
for await (const chunk of req)
chunks.push(chunk);
body = JSON.parse(Buffer.concat(chunks).toString() || "null");
}
const sessionId = req.headers["mcp-session-id"];
let transport = sessionId ? transports.get(sessionId) : undefined;
if (!transport) {
if (req.method !== "POST" || !isInitializeRequest(body)) {
res
.writeHead(400, { "content-type": "application/json" })
.end(JSON.stringify({ jsonrpc: "2.0", error: { code: -32000, message: "Bad Request: no valid session" }, id: null }));
return;
}
const t = new StreamableHTTPServerTransport({
sessionIdGenerator: () => randomUUID(),
onsessioninitialized: (id) => {
transports.set(id, t);
},
});
t.onclose = () => {
if (t.sessionId)
transports.delete(t.sessionId);
};
await buildServer(adapter, config.guardrails, version).connect(t);
transport = t;
}
await transport.handleRequest(req, res, body);
}
catch (e) {
console.error(redact(e instanceof Error ? e.message : String(e)));
if (!res.headersSent)
res.writeHead(500).end();
}
});
const shutdown = async () => {
httpServer.close();
for (const t of transports.values())
await t.close().catch(() => { });
await adapter.close();
process.exit(0);
};
process.on("SIGINT", shutdown);
process.on("SIGTERM", shutdown);
await new Promise((resolve) => httpServer.listen(config.transport.port, "127.0.0.1", resolve));
console.error(`database-mcp-${adapter.engine} ${version} listening on http://127.0.0.1:${config.transport.port}/mcp (read-only: ${config.guardrails.readOnly})`);
}
//# sourceMappingURL=serve.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAGjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,OAAwB,EAAE,MAAc,EAAE,OAAe;IACnF,oEAAoE;IACpE,uEAAuE;IACvE,mBAAmB,EAAE,CAAC;IAEtB,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,oEAAoE;QACpE,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,KAAK,CAAC,gBAAgB,OAAO,CAAC,MAAM,IAAI,OAAO,sBAAsB,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC9G,CAAC"}
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
{
"name": "@database-mcp/core",
"version": "0.2.2",
"version": "0.3.0",
"description": "Engine-agnostic core for database-mcp MCP servers: protocol layer, adapter interface, guardrails, SQL guard",

@@ -5,0 +5,0 @@ "license": "MIT",

@@ -7,4 +7,4 @@ # @database-mcp/core

You probably want an engine package instead — `@database-mcp/sqlite`,
`@database-mcp/mysql`, ... — each of which is a thin adapter on top of this core.
You probably want an engine package instead (`@database-mcp/sqlite`,
`@database-mcp/mysql`, and so on). Each is a thin adapter on top of this core.

@@ -11,0 +11,0 @@ ## Writing an engine package