A community-driven Power Query M language reference, hosted at pqm.guide.
PQM.guide documents 512 Power Query M functions across 24 categories with clear syntax references, visual output examples, and practical best practices. It also includes concept guides, practical patterns, and an MCP server so AI assistants can query M documentation directly. Think of it as DAX.guide for the M language.
| Section | URL | Description |
|---|---|---|
| Functions | /functions/[slug] |
512 functions across 24 categories with syntax, parameters, examples, and best practices |
| Concepts | /concepts/[slug] |
17 concept guides covering M fundamentals (lazy evaluation, query folding, type system, etc.) |
| Patterns | /patterns/[slug] |
18 practical M recipes grouped by difficulty (beginner → advanced) |
| Start Here | /learn |
A curated 8-step learning path for developers new to M |
| Sample Tables | /sample-tables |
Reference data used in function examples (Sales, Customers, Products, Employees, OrderLog) |
| Resources | /resources |
Curated tools, books, YouTube channels, blogs, and community links |
| MCP Server | /mcp |
Connect AI assistants like Claude and Cursor to PQM.guide via the Model Context Protocol |
PQM.guide exposes several machine-readable endpoints:
| Endpoint | Description |
|---|---|
GET /api/functions |
All 512 functions (metadata) |
GET /api/functions/[slug] |
Single function with full content, remarks, and parsed examples |
GET /api/concepts |
All concept guides |
GET /api/concepts/[slug] |
Single concept with full content |
GET /api/patterns |
All patterns |
GET /api/patterns/[slug] |
Single pattern with full content |
GET /api/search?q= |
Fuzzy search across all functions |
GET /api/tables/[id] |
Sample table data as JSON (Sales, Customers, Products, Employees, OrderLog) |
GET /llms.txt |
Plain-text index (llmstxt.org format) for LLM crawlers |
POST /api/mcp |
MCP JSON-RPC 2.0 endpoint (Streamable HTTP transport) |
Connect Claude Desktop by adding this to claude_desktop_config.json:
{
"mcpServers": {
"pqm-guide": {
"command": "npx",
"args": ["mcp-remote", "https://pqm.guide/api/mcp"]
}
}
}Any client supporting Streamable HTTP can also connect directly to https://pqm.guide/api/mcp.
PQM.guide is open to contributions from the Power Query community. All content lives in MDX files — no special build knowledge required for most edits.
- Fork this repository
- Find the file you want to edit:
- Functions:
src/content/functions/[slug].mdx - Concepts:
src/content/concepts/[slug].mdx - Patterns:
src/content/patterns/[slug].mdx
- Functions:
- Make your changes and submit a pull request
Function pages are MDX files in src/content/functions/ with YAML frontmatter. Use any existing file as a template.
File naming: category-functionname.mdx in lowercase (e.g., text-contains.mdx)
Rules:
- Examples must use the shared sample tables (Sales, Customers, Products, Employees, OrderLog) — never
Table.FromRecordsfor sample data - Wrap expected output in
<!--output ... -->HTML comments as JSON withcolumnsandrows - See the Sample Tables page for available data
Concept guides live in src/content/concepts/. Use any existing concept as a template.
Frontmatter:
---
title: "Your Concept Title"
slug: "your-concept-slug"
description: "One sentence description shown in listings and meta tags."
relatedConcepts:
- "other-concept-slug"
relatedFunctions:
- "function-slug"
---Body is standard Markdown with fenced code blocks using the powerquery language identifier.
Patterns live in src/content/patterns/. Use any existing pattern as a template.
Frontmatter:
---
title: "Pattern Title"
slug: "pattern-slug"
description: "One sentence description."
difficulty: "beginner" # beginner | intermediate | advanced
relatedFunctions:
- "function-slug"
relatedConcepts:
- "concept-slug"
---Patterns should follow a problem → solution → explanation structure with working code examples.
- Open an issue to report errors or suggest improvements
- Start a discussion to propose new content or features
npm install
npm run devOpen http://localhost:3000 to preview the site. New MDX content is picked up automatically — restart the dev server if a brand-new content directory isn't appearing.
- Next.js 16 with App Router
- React 19
- Tailwind CSS 4
- TypeScript, MDX, gray-matter, PrismJS, Fuse.js, next-themes
- @fluentui/react-icons for sidebar category icons
- MCP: JSON-RPC 2.0 over Streamable HTTP (no external SDK)
- Deployed on Vercel