ext-apps/examples/basic-server-solid
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Olivier Chafik 134c71c29c
Add MCP client configuration examples to CONTRIBUTING.md (#508)
* docs: restore full MCP client JSON configs to CONTRIBUTING.md

Reinstate the copy-pasteable JSON configurations for running all examples
with MCP clients (npx-based and local development), which were removed
from README.md in 2af02ba. Placed in CONTRIBUTING.md as a better home
for contributor-facing setup instructions.

https://claude.ai/code/session_014pjt7bE4ckHns5QFPkdWQp

* Use start:stdio in local dev config, add missing scripts to 9 examples

Update the local development JSON config in CONTRIBUTING.md to use
`npm --silent run start:stdio` instead of manual bash commands.

Add `serve:stdio` and `start:stdio` scripts to the 9 examples that
were missing them (basic-server-*, sheet-music, transcript,
video-resource, debug) to match the pattern already in place for the
other 11 showcase examples.

https://claude.ai/code/session_014pjt7bE4ckHns5QFPkdWQp

* style: auto-fix prettier formatting

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-06 13:16:42 +00:00
..
src Improve example CSS files to better demonstrate host style integration 2026-01-30 09:32:26 -06:00
.gitignore Improve consistency and organization of examples for AI learning 2026-01-13 20:48:02 -06:00
main.ts Refactor server startup functions 2026-01-24 09:27:54 -06:00
mcp-app.html Add basic-server-* examples for Vue, Svelte, Preact, and Solid (#141) 2026-01-08 18:44:36 +00:00
package.json Add MCP client configuration examples to CONTRIBUTING.md (#508) 2026-03-06 13:16:42 +00:00
README.md Use apps.extensions.modelcontextprotocol.io domain for docs URLs 2026-02-24 11:38:54 -06:00
server.ts Rewrite Quickstart guide with type-checked code examples 2026-01-24 09:41:51 -06:00
tsconfig.json Add basic-server-* examples for Vue, Svelte, Preact, and Solid (#141) 2026-01-08 18:44:36 +00:00
tsconfig.server.json feat: compile example servers to JavaScript for npm consumption (#259) 2026-01-14 23:46:17 +00:00
vite.config.ts Add basic-server-* examples for Vue, Svelte, Preact, and Solid (#141) 2026-01-08 18:44:36 +00:00

Example: Basic Server (Solid)

An MCP App example with a Solid UI.

Tip

Looking for a vanilla JavaScript example? See basic-server-vanillajs!

MCP Client Configuration

Add to your MCP client configuration (stdio transport):

{
  "mcpServers": {
    "basic-solid": {
      "command": "npx",
      "args": [
        "-y",
        "--silent",
        "--registry=https://registry.npmjs.org/",
        "@modelcontextprotocol/server-basic-solid",
        "--stdio"
      ]
    }
  }
}

Local Development

To test local modifications, use this configuration (replace ~/code/ext-apps with your clone path):

{
  "mcpServers": {
    "basic-solid": {
      "command": "bash",
      "args": [
        "-c",
        "cd ~/code/ext-apps/examples/basic-server-solid && npm run build >&2 && node dist/index.js --stdio"
      ]
    }
  }
}

Overview

Key Files

Getting Started

npm install
npm run dev

How It Works

  1. The server registers a get-time tool with metadata linking it to a UI HTML resource (ui://get-time/mcp-app.html).
  2. When the tool is invoked, the Host renders the UI from the resource.
  3. The UI uses the MCP App SDK API to communicate with the host and call server tools.

Build System

This example bundles into a single HTML file using Vite with vite-plugin-singlefile — see vite.config.ts. This allows all UI content to be served as a single MCP resource. Alternatively, MCP apps can load external resources by defining _meta.ui.csp.resourceDomains in the UI resource metadata.