Create your own custom MCP Servers.
bl create-mcp-server
. This will create a pre-scaffolded local repo where your entire code can be added.
bl serve --hotreload
.
Develop in TypeScript
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:name
, description
, and parameters are crucial—they help your agent understand how your tool functions.Develop in Python
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:type
so Blaxel knows which kind of entity to deploy. Others are not mandatory but allow you to customize the deployment.
name
, workspace
, and type
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.Define entrypoints in Python
[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 serverdev
: 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
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.