Appa Tools documentation for MCP Studio, including setup, guides, concepts, and API-related reference content.

Skip to main content

Build a full-stack context server

Turn every tool in your architecture diagram into one MCP server, then connect it to your IDE so your coding assistant answers from real documentation instead of a training snapshot.

Build absolutely anything...with the right context.

AudienceDevelopers building an application on a multi-service stack
PrerequisitesAn MCP Studio account, your list of stack dependencies, and an MCP-compatible editor
TimeAbout 10 minutes
Prefer the narrative version?

This tutorial is the procedure. The reasoning behind each choice — why one server rather than five, what to do when a docs site is too large — is in How to build a full-stack application with MCP Studio. The MCP for developers page is the two-minute overview.

Step 1 — Build your source list

Work through your architecture diagram, or your package.json if that is closer to the truth. For each dependency, decide which artefact to index.

Documentation qualityWhat to add
Good reference docsThe docs site, scoped to the reference section
Thin or outdated docsThe GitHub repo — types and tests do not lie about the API
Internal serviceYour private repo, plus any RFC or design docs
Already has an MCP endpointThe endpoint URL, federated rather than crawled

A typical five-service stack produces six or seven sources.

Step 2 — Create the server

  1. Open the wizard and start a new server.
  2. Name it after the project, not the stack. acme-checkout-stack survives a framework migration; nextjs-prisma-mcp does not.

Step 3 — Add documentation sources

In the Sources step, paste each documentation URL.

Scope each one as deeply as you can while still covering what you need. https://www.prisma.io/docs indexes better than https://www.prisma.io, because the crawler spends its 5,000-page budget on reference content instead of pricing and blog pages.

If a site exceeds the page cap, the wizard offers to use its underlying GitHub docs repo instead. That is usually the better source anyway.

Step 4 — Add repositories

Add a GitHub repo as a separate source for anything whose documentation is thin.

For private repos, MCP Studio detects that it cannot reach the URL publicly and shows a private-repo callout. Click Link GitHub Account, complete the OAuth flow, and the source is added with a Private badge.

Point at the package, not the monorepo root

For a monorepo, add the path to the package you depend on. Indexing the whole repository wastes the page budget on code you will never ask about.

Step 5 — Select tools

In the Tools step, enable the four that matter most for development work:

ToolWhy
get_code_examplesReturns snippets written by the library authors instead of reconstructed ones
find_api_referenceResolves exact method signatures, which is where invented arguments come from
extract_schemaReturns real type and schema definitions so generated models match your database
search_issuesFinds the GitHub issue describing the error in your terminal

See Choose tools for the full list of ten.

Step 6 — Deploy

Complete the Review step and click Deploy. You get an endpoint URL immediately.

Indexing runs as a durable background job queue, so you can close the tab. The server answers from live fetching while the index fills in behind it, which means it is useful before it is finished.

Step 7 — Connect your editor

Copy the generated configuration:

{
"mcpServers": {
"acme-checkout-stack": {
"url": "https://appatools.com/mcp-studio/api/mcp/acme-checkout-stack-k3m9x2"
}
}
}

In Cursor, put this in .cursor/mcp.json in the project root and commit it — everyone who clones the repo then gets the same context automatically. For Claude Desktop and Windsurf, see Connect to AI clients.

Restart your editor. MCP configuration is read at startup.

Step 8 — Verify it worked

Ask something your assistant previously got wrong. Good candidates:

  • "What is the correct nested-write syntax for a relation in the Prisma version we have installed?"
  • "Show me a webhook signature check for the Stripe API version we are on."
  • "What columns does our User model have, and how do I add a nullable one safely?"

A working server returns answers that cite the page and passage they came from. If answers arrive with no citation, the client is not calling the server — recheck the config path and confirm you restarted.

Maintain it

  • After a major version bump, refresh that source from the dashboard rather than waiting for the daily 7:00 AM auto-refresh.
  • Check which sources get retrieved. The dashboard shows this. A source that never appears in an answer is either badly scoped or unnecessary, and removing it frees room under your plan limit.