Help us improve
Share bugs, ideas, or general feedback.
From mssql-mcp-server
Persist and recall dataset-specific knowledge about the user's SQL Server connections — query recipes, schema rules, cross-server patterns, business logic. Use whenever the user shares a fact about their data, or before answering a question that the user has likely answered before.
npx claudepluginhub bherbruck/mssql-mcp-server --plugin mssql-mcp-serverHow this skill is triggered — by the user, by Claude, or both
Slash command
/mssql-mcp-server:mssql-knowledgeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The mssql-mcp-server exposes a small "notebook" of markdown skill files via four MCP tools:
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
Share bugs, ideas, or general feedback.
The mssql-mcp-server exposes a small "notebook" of markdown skill files via four MCP tools:
list_skills — show every saved skill with a preview and mtimeread_skill(name) — return the full markdown of onewrite_skill(name, content, mode='replace'|'append') — create or updatedelete_skill(name) — remove (confirm with user first)Files live in a global directory next to the config (typically ~/.config/mssql-mcp-server/skills/). They survive across sessions and across MCP server restarts.
Whenever the user teaches you something that would be useful next session, persist it. Specifically:
prod.dbo.Orders against analytics.dbo.InventorySnapshot on sku."Customers.status_id IS NULL means the row is a soft-deleted shadow — filter it out unless the user asks for archived data."type = 'B' are archived after 90 days — they only appear in WidgetsArchive, not Widgets."stg_ schema is staging; query prod schema for stable data."Orders.created_at is in UTC; Orders.local_created_at is in the store's local timezone — they can differ by up to 14 hours."Don't capture trivia or one-shot SQL. Save things the user (or future-you) will want to look up again.
One file per topic. Use clear short names that compose into a list_skills index a future Claude can grep:
cross-server-joins.mdwidgets.mdorders-pitfalls.mdnaming-conventions.mdInside each, lead with a # Heading so list_skills shows a useful preview. Mix prose and SQL fenced blocks.
At the start of any data question, call list_skills first. It's cheap and the previews tell you which files are relevant. Read the ones that look applicable before you formulate a query — they often contain the exact join shape, filter, or gotcha you'd otherwise miss.
If the user says something like "remember when we figured out X" or "use the rule we set for Y", call list_skills and read the relevant entry.
mode='replace' is the default and is fine for small rewrites.mode='append' is right when adding a new example or note to an existing topic without disturbing the rest.User: "Btw, only count widgets where status_code IN ('A','S') — that's our 'live' set."
You: call list_skills. If a widgets.md exists, read_skill('widgets'), then write_skill('widgets', updated_content, mode='replace') with the new rule added. If not, write_skill('widgets', '# Widgets\n\n## Live set\n\nA widget is "live" when status_code IN (\'A\',\'S\'). ...', 'replace').
Confirm to the user briefly that you've saved the note — one sentence — so they know future sessions will remember.