这是一个提供对PostgreSQL数据库读写访问的Model Context Protocol服务器。此服务器使LLMs能够检查数据库模式、执行查询、修改数据以及创建或修改数据库模式对象。
注意: 这是Anthropic原始PostgreSQL MCP服务器的增强版本。原始服务器仅提供只读访问,而这个增强版本增加了写入能力和模式管理功能。
sql(字符串):要执行的SQL查询execute
sql(字符串):要执行的SQL语句insert
table(字符串):表名data(对象):键值对,其中键是列名,值是要插入的数据update
table(字符串):表名data(对象):要更新字段的键值对where(字符串):用于识别要更新记录的WHERE条件delete
table(字符串):表名where(字符串):用于识别要删除记录的WHERE条件createTable
tableName(字符串):表名columns(数组):列定义数组,包括名称、类型和可选约束constraints(数组):可选的表级约束数组createFunction
name(字符串):函数名parameters(字符串):函数参数returnType(字符串):返回类型language(字符串):语言(plpgsql, sql等)body(字符串):函数主体options(字符串):可选的附加函数选项createTrigger
name(字符串):触发器名tableName(字符串):应用触发器的表functionName(字符串):要调用的函数when(字符串):BEFORE, AFTER或INSTEAD OFevents(数组):事件数组(INSERT, UPDATE, DELETE)forEach(字符串):ROW或STATEMENTcondition(字符串):可选的WHEN条件createIndex
tableName(字符串):表名indexName(字符串):索引名columns(数组):要索引的列unique(布尔值):是否唯一索引type(字符串):可选的索引类型(BTREE, HASH, GIN, GIST等)where(字符串):可选的条件alterTable
tableName(字符串):表名operation(字符串):操作(ADD COLUMN, DROP COLUMN等)details(字符串):操作详情该服务器提供了数据库中每个表的模式信息:
postgres://<host>/<table>/schema)
要在Claude Desktop应用程序中使用此服务器,请在您的claude_desktop_config.json文件的“mcpServers”部分添加以下配置:
host.docker.internalpostgresql://user:password@host:port/db-name将用户名/密码添加到PostgreSQL URL中?sslmode=no-verify{
"mcpServers": {
"postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp/postgres",
"postgresql://host.docker.internal:5432/mydb"]
}
}
}
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://localhost/mydb"
]
}
}
}
请将/mydb替换为您自己的数据库名称。
/query SELECT * FROM users LIMIT 5
/insert table="users", data={"name": "John Doe", "email": "john@example.com"}
/update table="users", data={"status": "inactive"}, where="id='123'"
/createTable tableName="tasks", columns=[
{"name": "id", "type": "SERIAL", "constraints": "PRIMARY KEY"},
{"name": "title", "type": "VARCHAR(100)", "constraints": "NOT NULL"},
{"name": "created_at", "type": "TIMESTAMP", "constraints": "DEFAULT CURRENT_TIMESTAMP"}
]
/createFunction name="update_timestamp", parameters="", returnType="TRIGGER", language="plpgsql", body="BEGIN NEW.updated_at = NOW(); RETURN NEW; END;"
/createTrigger name="set_timestamp", tableName="tasks", functionName="update_timestamp", when="BEFORE", events=["UPDATE"], forEach="ROW"
Docker:
docker build -t mcp/postgres -f Dockerfile .
此MCP服务器根据MIT许可证发布。这意味着您可以自由地使用、修改和分发软件,但需遵守MIT许可证的条款和条件。更多详细信息,请参见项目存储库中的LICENSE文件。