Amnesic
Persistent semantic memory for SQL databases.
Connector by SurajKGoyal · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/surajkgoyal-amnesic
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.
- Tools
- 7 read · 1 write · 0 delete · 4 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 12
Read from the source code; the running server may list different tools.
Read 7 · Look things up without changing anything.
db_detect_driftdb_discover_relationshipsdb_get_relationshipsdb_get_schemadb_list_connectionsdb_list_tablesdb_search
Write 1 · Create, change, send or run things.
db_sync_knowledge
Not yet classified 4 · We could not tell from the name and description.
db_annotatedb_deprecatedb_forgetdb_query
Network hosts it talks to 3
api.github.com· found in codegithub.com· found in codeglama.ai· found in code
Files it touches
- Your home directory (~)
Tools (12)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
db_annotatePersist semantic annotations for a table or column — survives across sessions. This is the core of amnesic's persistent memory. Every annotation saved here is automatically merged into future db_get_schema() responses, so the AI never has to rediscover what a status code means or what a table is for. Call this after discovering: what an enum value means, what a column represents, how a table relates to another, or what a table is used for. Args: table: Table name, optionally schema-qualified to match your DB — e.g. "users", "public.users" (Postgres),…
db_deprecateSoft-retire a table or column annotation — flag it stale without deleting it. Use when a table/column still exists but should no longer be relied on. The deprecation flag is surfaced in db_get_schema so the AI is warned off it on future calls. Reversible via undo=True. To remove an annotation entirely (e.g. the column was dropped from the DB), use db_forget instead. Args: table: Table name, optionally schema-qualified (e.g. "users", "public.users", "dbo.Orders", "mydb.orders"). connection: Connection name. Defaults to first defined. column: Column to depr…
db_detect_driftAudit saved annotations against the live database schema (read-only). Surfaces drift after the schema evolves: - orphaned annotations — a table or column you annotated that no longer exists in the DB. Remove with db_forget, or db_deprecate if pending. - undocumented tables — live tables with no annotation yet (coverage gaps). Changes nothing — purely a report. Run after schema changes, or periodically. Args: connection: Connection name. Defaults to first defined. Returns: {connection, orphaned_tables, orphaned_columns, undocumented_tables, undocumented_truncated, summa…
db_discover_relationshipsDiscover all foreign key relationships in the database and save them to the graph. Runs driver-specific FK introspection queries against the live database and persists results to the local KnowledgeStore. Run once per database; re-run after schema changes. After discovery, use db_get_relationships to navigate the graph when planning complex JOIN queries. Args: connection: Connection name. Defaults to first defined. Returns: {connection, discovered: count, relationships: [{from_table, from_column, to_table, to_column}]}
db_forgetPermanently delete a table or column annotation. Safe by default — NOT reversible. Use to remove a wrong annotation, or to clean up after a table/column was dropped from the DB (pairs with db_detect_drift). Unlike db_deprecate, this hard-deletes. Cascade is opt-in so you can't nuke a table by accident: - db_forget(table) -> ONLY the table's own annotation - db_forget(table, column="x") -> ONLY that column's annotation - db_forget(table, cascade=True) -> the table + all its column annotations + all relationships touching it Only the …
db_get_relationshipsGet the foreign key relationship graph for a table up to the given traversal depth. Depth 1 returns direct neighbors (tables one JOIN away). Depth 2 returns neighbors-of-neighbors. Returns both a flat neighbor list and formatted join path strings to help plan multi-table queries. Requires db_discover_relationships to have been run first. Args: table: Table name (e.g. "Orders"). connection: Connection name. Defaults to first defined. depth: BFS traversal depth (default 1, recommended max 3). Returns: {table, connection, neighbors: [...], paths: ["TableA -> TableB ->…
db_get_schemaGet column schema for a table, merged with any saved semantic annotations. Checks the local cache first; fetches from the database on cache miss or when force_refresh=True. Saves the result to cache for future calls. Merges column descriptions, enum value mappings, and FK references from previous db_annotate() calls into the response. Args: table: Table name, optionally schema-qualified. Use whatever your DB uses — e.g. "users", "public.users" (Postgres), "dbo.Orders" (MSSQL), "mydb.orders" (MySQL). connection: Connection name. Default…
db_list_connectionsList all configured database connections without exposing passwords or usernames. Use this first to see what databases are available before calling other tools. Returns connection names, drivers, databases, and server addresses. Returns: {connections: [{name, driver, database, server}]}
db_list_tablesList all known tables for a connection, with descriptions and column counts. Tables appear once they have been fetched via db_get_schema or annotated via db_annotate. Descriptions come from the knowledge store — richer than raw INFORMATION_SCHEMA. Args: connection: Connection name. Defaults to first defined. Returns: {connection, database, tables: [{table_fqn, description, aliases, column_count}]}
db_queryExecute a read-only SELECT query and return rows as a list of dicts. All queries run inside an immediately-rolled-back transaction — write statements are blocked both statically and at the transaction level. Call db_get_schema first if you are unfamiliar with the table structure. Args: sql: SELECT query to execute. No INSERT/UPDATE/DELETE allowed. connection: Connection name (e.g. "orders.prod"). Defaults to first defined. max_rows: Maximum rows to return (default 500). Set lower for large tables. Returns: {rows, row_count, connection, database, truncated}
db_searchSearch the knowledge layer for tables/columns matching a query — BM25-ranked. Use this BEFORE db_list_tables when you're looking for a specific concept (e.g. "payments", "user email", "shipping address"). db_list_tables returns every table; db_search returns just the relevant ones with descriptions and highlighted snippets. Searches across: - Table names, descriptions, and aliases - Column names, descriptions, and enum_values Falls back gracefully to empty results if the query has invalid FTS5 syntax. Args: query: Search text. Supports FTS5 syntax: phrases ("foo bar"), …
db_sync_knowledgeCopy annotations from one connection's knowledge store to another. Typical use: after confirming that staging and prod share the same schema, sync all the semantic knowledge you've built up in staging to prod. Only syncs tables and columns that exist in the target schema cache — tables missing from target are reported in 'skipped', columns in 'warnings'. Args: from_connection: Source connection (e.g. "orders.staging"). to_connection: Target connection (e.g. "orders.prod"). tables: Optional list of specific table FQNs to sync. Defaults to all. Returns: {synced: [..…
Signals
- Stars
- 4
- Forks
- 1
- Open issues
- 9
- Weekly downloads
- 41
- Last commit
- Oct 24, 2026 (4 days ago)
- Last release
- Jun 22, 2026 (4 months ago)
- Last package publish
- Jun 22, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.SurajKGoyal/amnesic- Version
- 0.2.2
- Auth
- No auth
- Packages
- pypi amnesic
- License
- MIT
- Repository
- github.com/SurajKGoyal/amnesic
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from SurajKGoyal
Cite this page
Amnesic MCP server. Agent Mart. https://agentmart.dev/connectors/surajkgoyal-amnesic (last updated 2026-10-24)