
Security News
Re-Enabled GitHub Actions Expose Thousands of Repositories to Mini Shai-Hulud
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.
@valv/mcp-sdk
Advanced tools
Library to turn your app's database into an MCP server for coding agents (Claude Code) — adapter-agnostic, row-level security, zero SQL
Expose a valv instance you configure as an MCP server, so coding agents like Claude Code can query your database — with the same policies, field masking, and zero-SQL safety valv gives in-process.
It's a thin, adapter-agnostic wrapper around a configured Valv (Prisma or ClickHouse): tool definitions and dispatch both run through valv, so every call is policy-gated.
Just want to point an agent at a
DATABASE_URLwith no code? Use@valv/mcp. This package is for when you want your own client, typed policies, and per-request identity.
npm i @valv/mcp-sdk
# plus your adapter, e.g. @valv/prisma + @prisma/client (or @valv/clickhouse)
# plus `express` only if you use the HTTP transport
Build your valv instance (adapter + policies), then serve it. The agent gets the four tools — list_resources, search_resources, describe_resource, query — and discovers your schema at runtime.
// mcp.ts
import { PrismaClient } from "@prisma/client"
import { createValv } from "@valv/prisma"
import { startStdioServer } from "@valv/mcp-sdk"
const valv = await createValv(new PrismaClient(), { defaultPolicy: "deny-all" })
valv.policy("order", (ctx) => ({ read: { tenant_id: ctx.tenant.id } }))
await startStdioServer(valv, {
// Resolved on every request — source identity from env vars, headers, etc.
context: () => ({ user: { role: process.env.VALV_ROLE! }, tenant: { id: process.env.VALV_TENANT! } }),
})
Register it with your client:
{ "mcpServers": { "valv": { "command": "npx", "args": ["tsx", "mcp.ts"] } } }
startStdioServer(valv, options) / startHttpServer(valv, { ...options, port }) / createMcpServer(valv, options) (transport-agnostic Server) take:
| Option | Description |
|---|---|
context | A value or per-request resolver (sync or async) for the policy context. |
discovery | { list?, search?, describe?, create?, update?, delete? } — discovery tools default on (query always stays); the write tools default off, enable them here (and allow the op in policy). |
serverInfo | Advertised { name, version }. |
The context resolver is the key piece for multi-tenant servers: over HTTP it can read identity from each request's headers, so one server safely serves many callers. Errors are sanitized before reaching the agent — valv's own validation/policy messages pass through, anything else becomes a generic message.
MIT
FAQs
Library to turn your app's database into an MCP server for coding agents (Claude Code) — adapter-agnostic, row-level security, zero SQL
The npm package @valv/mcp-sdk receives a total of 8 weekly downloads. As such, @valv/mcp-sdk popularity was classified as not popular.
We found that @valv/mcp-sdk demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.

Research
/Security News
The compromise affects MemTensor's MemOS, an open source memory framework for large language models (LLMs) and AI agents. Both npm package @memtensor/memos-cloud-openclaw-plugin and the PyPI package MemoryOS are compromised. They drop cross-platform Go binaries that exfiltrate developer secrets.