MCP servers (Model Context Protocol) provide a toolkit of multiple tools—individual capabilities for accessing specific APIs or databases. These servers can be interacted with using HTTP on the server’s global endpoint. You can develop custom MCP servers in TypeScript or Python and deploy them on Blaxel by integrating a few lines of the Blaxel SDK and leveraging our other developer tools (Blaxel CLI, GitHub action, etc.).Documentation Index
Fetch the complete documentation index at: https://docs.blaxel.ai/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart
You can quickly initialize a new MCP server from scratch by using CLI commandbl new. This initializes a new 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, using streamable HTTP as the transport mechanism.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, using streamable HTTP as the transport mechanism.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 not mandatory; if the file is not found or a required option is not set, you will be prompted for the information during deployment.name,workspace, andtypefields 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.
