# MemberPress AI Academy > Free courses, projects, recipes and prompts for building with AI, from the MemberPress.ai team. ## Courses - [Agent-Discoverable Surfaces](https://academy.memberpress.ai/courses/agent-discoverable-surfaces/index.md): Make your site, data, and tools discoverable by AI agents. MCP for assistants like Claude, Custom GPTs for ChatGPT, and OpenAPI as the schema that ties them together. - [Close the MCP discovery loop on a static site](https://academy.memberpress.ai/courses/agent-discoverable-surfaces/l5/index.md) - [Ship the MCP discovery loop on WordPress](https://academy.memberpress.ai/courses/agent-discoverable-surfaces/l7/index.md) - [Formatters are the security architecture, not the permission check](https://academy.memberpress.ai/courses/agent-discoverable-surfaces/l6/index.md) - [Rate-limit OAuth /register for AI clients, not human OAuth](https://academy.memberpress.ai/courses/agent-discoverable-surfaces/l1/index.md) - [Two-axis MCP authorization — scope and capability](https://academy.memberpress.ai/courses/agent-discoverable-surfaces/l2/index.md) - [Allowlist OAuth redirect URIs by host, not full path](https://academy.memberpress.ai/courses/agent-discoverable-surfaces/l3/index.md) - [GPT Actions vs MCP — different discovery topology, same goal](https://academy.memberpress.ai/courses/agent-discoverable-surfaces/l4/index.md) - [Anthropic API Fundamentals](https://academy.memberpress.ai/courses/api-fundamentals/index.md): Get an API key, send your first request, handle errors and rate limits, and ship a real Claude integration. - [Get an API key, make one request](https://academy.memberpress.ai/courses/api-fundamentals/l1/index.md) - [Messages, system, and the request shape](https://academy.memberpress.ai/courses/api-fundamentals/l2/index.md) - [Streaming vs. blocking](https://academy.memberpress.ai/courses/api-fundamentals/l3/index.md) - [Errors, retries, and timeouts](https://academy.memberpress.ai/courses/api-fundamentals/l4/index.md) - [Rate limits and the cost of context](https://academy.memberpress.ai/courses/api-fundamentals/l5/index.md) - [Prompt caching](https://academy.memberpress.ai/courses/api-fundamentals/l6/index.md) - [Wrap a call in a small CLI](https://academy.memberpress.ai/courses/api-fundamentals/l7/index.md) - [Add it to a real app](https://academy.memberpress.ai/courses/api-fundamentals/l8/index.md) - [Make your endpoint agent-discoverable](https://academy.memberpress.ai/courses/api-fundamentals/l9/index.md) - [Claude Code Agents — Sub-Agents, Tools, and MCP](https://academy.memberpress.ai/courses/code-agents/index.md): Sub-agents, the tool-use primitive, MCP servers, and a sub-agent that ships PRs end-to-end. - [What a sub-agent is and isn't](https://academy.memberpress.ai/courses/code-agents/l1/index.md) - [Dispatching for parallel research](https://academy.memberpress.ai/courses/code-agents/l2/index.md) - [Worktree isolation](https://academy.memberpress.ai/courses/code-agents/l3/index.md) - [The tool-use primitive](https://academy.memberpress.ai/courses/code-agents/l4/index.md) - [Writing an MCP server for your stack](https://academy.memberpress.ai/courses/code-agents/l5/index.md) - [When to add a tool vs. when to write a script](https://academy.memberpress.ai/courses/code-agents/l6/index.md) - [A sub-agent that ships PRs](https://academy.memberpress.ai/courses/code-agents/l7/index.md) - [Long-running agents and recovery](https://academy.memberpress.ai/courses/code-agents/l8/index.md) - [Verify the docs before the agent writes a line](https://academy.memberpress.ai/courses/code-agents/l9/index.md) - [Forcing functions for autonomous pipelines](https://academy.memberpress.ai/courses/code-agents/l10/index.md) - [Claude Code — Getting Started](https://academy.memberpress.ai/courses/code-intro/index.md): Install Claude Code, run your first task, read the diff, and learn when to interrupt and when to let it run. - [Install Claude Code](https://academy.memberpress.ai/courses/code-intro/l1/index.md) - [First task — let it edit a file](https://academy.memberpress.ai/courses/code-intro/l2/index.md) - [Reading the diff](https://academy.memberpress.ai/courses/code-intro/l3/index.md) - [Asking for a refactor](https://academy.memberpress.ai/courses/code-intro/l4/index.md) - [When to interrupt, when to let it run](https://academy.memberpress.ai/courses/code-intro/l5/index.md) - [Tests as the safety rail](https://academy.memberpress.ai/courses/code-intro/l6/index.md) - [Ship a small PR end-to-end](https://academy.memberpress.ai/courses/code-intro/l7/index.md) - [When Claude Code goes sideways](https://academy.memberpress.ai/courses/code-intro/l8/index.md) - [Claude Desktop Fundamentals](https://academy.memberpress.ai/courses/desktop-fundamentals/index.md): Set up Claude Desktop, attach files, build Projects and Skills, and turn ad-hoc chats into a repeatable workflow. - [Install and sign in](https://academy.memberpress.ai/courses/desktop-fundamentals/l1/index.md) - [The chat interface, briefly](https://academy.memberpress.ai/courses/desktop-fundamentals/l2/index.md) - [Your first useful query](https://academy.memberpress.ai/courses/desktop-fundamentals/l3/index.md) - [Attaching files for context](https://academy.memberpress.ai/courses/desktop-fundamentals/l4/index.md) - [Long documents and chunking](https://academy.memberpress.ai/courses/desktop-fundamentals/l5/index.md) - [Code in the chat — when it helps, when it hurts](https://academy.memberpress.ai/courses/desktop-fundamentals/l6/index.md) - [One workflow you do every day](https://academy.memberpress.ai/courses/desktop-fundamentals/l7/index.md) - [Debugging a prompt that almost works](https://academy.memberpress.ai/courses/desktop-fundamentals/l8/index.md) - [Save what works as a Project](https://academy.memberpress.ai/courses/desktop-fundamentals/l9/index.md) - [The Great Minds Constellation](https://academy.memberpress.ai/courses/great-minds-constellation/index.md): How to split AI helpers into small plugins that each do one job well, and why one do-everything assistant does each job worse. - [Five plugins shipped — one shape](https://academy.memberpress.ai/courses/great-minds-constellation/l1/index.md) - [Not a suite. Not a platform. A constellation.](https://academy.memberpress.ai/courses/great-minds-constellation/l2/index.md) - [The five shipped plugins](https://academy.memberpress.ai/courses/great-minds-constellation/l3/index.md) - [Practice - map your own constellation](https://academy.memberpress.ai/courses/great-minds-constellation/l4/index.md) - [One plugin equals one craft](https://academy.memberpress.ai/courses/great-minds-constellation/l5/index.md) - [Why mixed registers fail](https://academy.memberpress.ai/courses/great-minds-constellation/l6/index.md) - [Persona files are written in craft register](https://academy.memberpress.ai/courses/great-minds-constellation/l7/index.md) - [Plugins ship prompts. Projects ship renders.](https://academy.memberpress.ai/courses/great-minds-constellation/l8/index.md) - [Practice - audit your plugin boundaries](https://academy.memberpress.ai/courses/great-minds-constellation/l9/index.md) - [great-engineers — the most conspicuous absence](https://academy.memberpress.ai/courses/great-minds-constellation/l10/index.md) - [great-designers — from Rams to Norman](https://academy.memberpress.ai/courses/great-minds-constellation/l11/index.md) - [great-operators — Cook, Grove, scaling](https://academy.memberpress.ai/courses/great-minds-constellation/l12/index.md) - [great-counsels — Lessig, RBG, the should-we register](https://academy.memberpress.ai/courses/great-minds-constellation/l13/index.md) - [great-researchers — Sagan, evidence, voice](https://academy.memberpress.ai/courses/great-minds-constellation/l14/index.md) - [great-educators — Feynman, Montessori, Freire](https://academy.memberpress.ai/courses/great-minds-constellation/l15/index.md) - [The dispatch protocol is the contract](https://academy.memberpress.ai/courses/great-minds-constellation/l16/index.md) - [Projects and Skills — Reusable Claude](https://academy.memberpress.ai/courses/projects-skills/index.md): Build Projects with stable system prompts. Write Skills as portable procedures. Share both with your team. - [A Project is a working set](https://academy.memberpress.ai/courses/projects-skills/l1/index.md) - [Building your first Project](https://academy.memberpress.ai/courses/projects-skills/l2/index.md) - [When to use Projects vs. when not to](https://academy.memberpress.ai/courses/projects-skills/l3/index.md) - [A Skill is a laminated card](https://academy.memberpress.ai/courses/projects-skills/l4/index.md) - [Writing your first Skill](https://academy.memberpress.ai/courses/projects-skills/l5/index.md) - [Sharing Skills with your team](https://academy.memberpress.ai/courses/projects-skills/l6/index.md) - [A Project + Skill stack for one team](https://academy.memberpress.ai/courses/projects-skills/l7/index.md) - [Maintaining the stack as your work changes](https://academy.memberpress.ai/courses/projects-skills/l8/index.md) - [Prompt Engineering 101](https://academy.memberpress.ai/courses/prompt-engineering-101/index.md): Nineteen lessons of structure, specificity, examples, and chained prompts. - [Welcome & how this works](https://academy.memberpress.ai/courses/prompt-engineering-101/l1/index.md) - [Basic prompt structure](https://academy.memberpress.ai/courses/prompt-engineering-101/l2/index.md) - [Practice - rewrite this prompt](https://academy.memberpress.ai/courses/prompt-engineering-101/l3/index.md) - [Being clear and direct](https://academy.memberpress.ai/courses/prompt-engineering-101/l4/index.md) - [Practice - add specificity](https://academy.memberpress.ai/courses/prompt-engineering-101/l5/index.md) - [Assigning roles](https://academy.memberpress.ai/courses/prompt-engineering-101/l6/index.md) - [Separating data from instructions](https://academy.memberpress.ai/courses/prompt-engineering-101/l7/index.md) - [Formatting & speaking for Claude](https://academy.memberpress.ai/courses/prompt-engineering-101/l8/index.md) - [Practice - format a JSON output](https://academy.memberpress.ai/courses/prompt-engineering-101/l9/index.md) - [Precognition (think step-by-step)](https://academy.memberpress.ai/courses/prompt-engineering-101/l10/index.md) - [Using examples (few-shot)](https://academy.memberpress.ai/courses/prompt-engineering-101/l11/index.md) - [Avoiding hallucinations](https://academy.memberpress.ai/courses/prompt-engineering-101/l12/index.md) - [Building complex prompts from scratch](https://academy.memberpress.ai/courses/prompt-engineering-101/l13/index.md) - [Industry use case - legal](https://academy.memberpress.ai/courses/prompt-engineering-101/l14/index.md) - [Industry use case - finance](https://academy.memberpress.ai/courses/prompt-engineering-101/l15/index.md) - [Industry use case - coding](https://academy.memberpress.ai/courses/prompt-engineering-101/l16/index.md) - [Chaining prompts](https://academy.memberpress.ai/courses/prompt-engineering-101/l17/index.md) - [Tool use primer](https://academy.memberpress.ai/courses/prompt-engineering-101/l18/index.md) - [Search & retrieval](https://academy.memberpress.ai/courses/prompt-engineering-101/l19/index.md) - [Real-World Prompts — Chains, Evals, and Production](https://academy.memberpress.ai/courses/real-world-prompts/index.md): Prompt chains, evals, version control, and rolling back a bad prompt without breaking production. - [When one prompt becomes two](https://academy.memberpress.ai/courses/real-world-prompts/l1/index.md) - [Passing state between steps](https://academy.memberpress.ai/courses/real-world-prompts/l2/index.md) - [Failure modes in chains](https://academy.memberpress.ai/courses/real-world-prompts/l3/index.md) - [Why evals exist](https://academy.memberpress.ai/courses/real-world-prompts/l4/index.md) - [Writing your first eval](https://academy.memberpress.ai/courses/real-world-prompts/l5/index.md) - [Evals that catch real regressions](https://academy.memberpress.ai/courses/real-world-prompts/l6/index.md) - [Versioning prompts in git](https://academy.memberpress.ai/courses/real-world-prompts/l7/index.md) - [Rolling back a bad prompt](https://academy.memberpress.ai/courses/real-world-prompts/l8/index.md) - [Skills as Standard Operating Procedures](https://academy.memberpress.ai/courses/skills-as-sops/index.md): Treat skill files as factory SOPs — institutional memory written down so anyone, human or agent, can run the procedure. - [The laminated card on the wall](https://academy.memberpress.ai/courses/skills-as-sops/l1/index.md) - [From factory floor to agent context](https://academy.memberpress.ai/courses/skills-as-sops/l2/index.md) - [Anatomy of a skill file](https://academy.memberpress.ai/courses/skills-as-sops/l3/index.md) - [Practice - write your first skill](https://academy.memberpress.ai/courses/skills-as-sops/l4/index.md) - [The Agent Skills format](https://academy.memberpress.ai/courses/skills-as-sops/l5/index.md) - [Encoding order and gotchas](https://academy.memberpress.ai/courses/skills-as-sops/l6/index.md) - [Practice - document a complex procedure](https://academy.memberpress.ai/courses/skills-as-sops/l7/index.md) - [The install pattern](https://academy.memberpress.ai/courses/skills-as-sops/l8/index.md) - [Banned patterns: how skills shut down hallucination](https://academy.memberpress.ai/courses/skills-as-sops/l11/index.md) - [Why intelligence is not the bottleneck](https://academy.memberpress.ai/courses/skills-as-sops/l9/index.md) - [Project - ship a skill to the community](https://academy.memberpress.ai/courses/skills-as-sops/l10/index.md) - [Tool Use — From Calculator to Agent](https://academy.memberpress.ai/courses/tool-use/index.md): From calculator-as-a-tool to a small agent — define tool schemas, handle tool-use loops, instrument for production. - [A calculator as a tool](https://academy.memberpress.ai/courses/tool-use/l1/index.md) - [How tool calls round-trip](https://academy.memberpress.ai/courses/tool-use/l2/index.md) - [When the model picks the wrong tool](https://academy.memberpress.ai/courses/tool-use/l3/index.md) - [Database read tools](https://academy.memberpress.ai/courses/tool-use/l4/index.md) - [External API tools](https://academy.memberpress.ai/courses/tool-use/l5/index.md) - [Filesystem tools and safety](https://academy.memberpress.ai/courses/tool-use/l6/index.md) - [A small agent that uses three tools](https://academy.memberpress.ai/courses/tool-use/l7/index.md) - [Evaluation and observability](https://academy.memberpress.ai/courses/tool-use/l8/index.md) - [Tools built for agents — the Hyperframes pattern](https://academy.memberpress.ai/courses/tool-use/l9/index.md) ## Projects - [Your Personal Claude Workspace](https://academy.memberpress.ai/projects/personal-claude-workspace/index.md): One Project, three Skills, a knowledge base, and a one-page README a teammate can adopt without asking you a question. - [A Production-Grade Agent](https://academy.memberpress.ai/projects/production-grade-agent/index.md): A Claude-powered feature behind a real API, deployed where a non-author can hit it, with an eval suite that blocks deploys when behavior regresses. - [Build a Repo-Native Agent](https://academy.memberpress.ai/projects/repo-native-agent/index.md): An agent that runs unattended against your own repo, with tools you wrote, tests you can show, and recovery paths for the failures you can name in advance. - [Your Tested Prompt Library](https://academy.memberpress.ai/projects/tested-prompt-library/index.md): Five prompts you actually use, each with a rationale, an eval that says when it broke, and a rollback. No wishlist entries. ## Recipes - [Build an Agent-Discoverable Public MCP Endpoint](https://academy.memberpress.ai/recipes/agent-discoverable-public-mcp/index.md): A public, unauthenticated MCP endpoint your site exposes so AI agents can discover and query your catalog with no credentials. Pairs with a `/.well-known/mcp.json` discovery file. - [Set Up Claude Code with a Brain Vault](https://academy.memberpress.ai/recipes/brain-vault-setup/index.md): Wire Claude Code to a long-lived Obsidian vault so every session starts with the context, decisions, and prior conversations the previous session earned. - [Multi-Agent Essay Production](https://academy.memberpress.ai/recipes/multi-agent-essay/index.md): A relay essay pipeline — outline agent, draft agent, editor agent, fact-check agent. Each one hands off a structured artifact and stops at its own boundary. - [Regex Explainer with Claude](https://academy.memberpress.ai/recipes/regex-explainer/index.md): A small skill that takes any regex and returns the english-language explanation, anchored examples, and the failure modes — the regex documentation you would write if you had time. ## Prompts - [Chain-of-Thought Scaffold](https://academy.memberpress.ai/prompts/chain-of-thought-scaffold/index.md): A reusable scaffold that asks the model to think step-by-step before answering — for problems where the right reasoning path matters more than the final word. - [Code Review Assistant](https://academy.memberpress.ai/prompts/code-review/index.md): A code review prompt that names what to flag, what to accept, and how strict to be — for the load-bearing PRs you cannot trust to a generic /review agent. - [Customer Apology Email](https://academy.memberpress.ai/prompts/customer-apology-email/index.md): A short, sincere customer apology that acknowledges the failure, offers a concrete remedy, and avoids the corporate tics that make apologies feel like deflections. - [Few-Shot Template](https://academy.memberpress.ai/prompts/few-shot-template/index.md): A few-shot prompt template — three worked examples, one fresh input — for tasks where the model needs to see the shape before producing it. - [Refactor with Rationale](https://academy.memberpress.ai/prompts/refactor-with-rationale/index.md): A refactor brief that asks for the change, the reason, and the boundary — so the resulting diff fits the seam you actually wanted to widen. - [Tone-Shift Rewriter](https://academy.memberpress.ai/prompts/tone-shift-rewriter/index.md): Take a draft and shift its register without losing the argument. Useful when the prose is right but the audience is wrong. ## Skills - [Agent Orchestration](https://academy.memberpress.ai/skills/agent-orchestration/index.md): When to dispatch one agent versus a swarm, how to write a brief that does not drift, and the shape of an agent's exit state. - [Effective AI Communication](https://academy.memberpress.ai/skills/communication/index.md): Claude responds to clarity and structure. The patterns that make a prompt land, and the ones that make it wander. - [Prompt Engineering Patterns](https://academy.memberpress.ai/skills/prompt-engineering-patterns/index.md): The reusable shapes — task-context-format, role assignment, few-shot, chain-of-thought — applied to real briefs, not toy examples. - [Public Surfaces for AI Agents](https://academy.memberpress.ai/skills/public-surfaces-for-ai-agents/index.md): How to design the public-facing surfaces — well-known files, MCP endpoints, robot-readable docs — so agents can use your product without a human in the loop.