Skip to main content
Boot a working server from the shipped hello-world example, then list and call a tool over MCP. The example is one local greet tool — no agents, no external services, nothing to configure.
1

Install the runtime

Follow the installation guide to clone the three packages side by side and run uv sync in tai-skeleton.
2

Boot the hello example

From the repository root, load the examples/hello manifest and serve it:
ACCESS_CONTROL_ENABLE=false turns off the request-auth gate, which is on by default and checks every request against Redis — this example does not use it. PYTHONPATH=examples/hello makes the example’s myapp package importable, because the manifest loads tools by import path. The server reports startup:
3

Call the tool

The MCP endpoint is http://127.0.0.1:8765/mcp. From a second terminal, list the tools and call greet:
Expected output:

What just happened

The manifest named one tool module, myapp.tools. Importing that module ran its registration decorator, which registered greet on the server:
The manifest is the only thing that decides what a server loads. An empty manifest ({}) boots a bare server with no tools; adding sections adds capabilities.

Next steps

Mental model

How the runtime fits together in one page.

Concepts

One page per pillar of the platform.

Build a tool

Register your own function as a tool.

Connect an MCP client

Point Claude Desktop, Cursor, or any client at your server.