Quickstart
It is required to have npm (TypeScript) or uv (Python) installed to use the following command.
bl create-mcp-server
. This will create a pre-scaffolded local repo where your entire code can be added.
bl serve --hotreload
.
Develop the MCP server logic
Develop in TypeScript
Develop in TypeScript
If you open the Remember that the
src/server.ts
file, you’ll see the complete server implementation. It follows the MCP server standard, with the only difference being our use of Blaxel transport that leverages WebSockets for efficient platform serving.The main component you’ll need to modify is the tool definition:server.ts
name
, description
, and parameters are crucial—they help your agent understand how your tool functions.Develop in Python
Develop in Python
If you open the
src/server.py
file, you’ll see the complete server implementation. It follows the MCP server standard, with the only difference being our use of Blaxel transport that leverages WebSockets for efficient platform serving.The main component you’ll need to modify is the tool definition:server.py
Deploy your MCP server
Read our complete guide for deploying your custom MCP server on Blaxel.
Template directory reference
blaxel.toml
The MCP server deployment can be configured via the blaxel.toml file in your MCP server directory. This file is used to configure the deployment of the MCP server on Blaxel. The only mandatory parameter is thetype
so Blaxel knows which kind of entity to deploy. Others are not mandatory but allow you to customize the deployment.
name
,workspace
, andtype
fields are optional and serve as default values. Any bl command run in the folder will use these defaults rather than prompting you for input.[env]
section defines environment variables that the MCP server can access via the SDK. Note that these are NOT secrets.[[triggers]]
and[triggers.configuration]
sections defines ways to send requests to the MCP servers. You can also make them either private (default) or public (authenticationType = "public"
).
Define entrypoints in Python
Define entrypoints in Python
Additionally, when developing in Python, you can define an This
[entrypoint]
section to specify how Blaxel is going to start your server.prod
: this is the command that will be used to serve your MCP server
dev
: same as prod in dev mode, it will be used with the command--hotreload
. Example:
entrypoint
section is optional. If not specified, Blaxel will automatically detect in the MCP server’s content and configure your server’s startup settings.Define entrypoints in TypeScript
Define entrypoints in TypeScript
In TypeScript, entrypoints are managed in the
scripts
in the package.json
file at the root of the directory.scripts.start
: start the server locally through the TypeScript command, to avoid having to build the project when developing.scripts.build
: build the project. It is done automatically when deploying.scripts.prod
: start the server remotely on Blaxel from the dist folder, the project needs to be have been built before.scripts.dev
: same as start, but with hotreload. It’s useful when developing locally, each file change is reflected immediately.
Deploy your MCP server
Read our complete guide for deploying your custom MCP server on Blaxel.