Project Configuration
For the vibe coders: llms.txt
Your project configuration tells us how to deploy your server and should live in the base of your repository. They are not the same as session configurations that clients pass to initialize a new session on your server.
Required Files
There are two files required in your repository in order to deploy:
The Dockerfile tells us how to build your server. The smithery.yaml file tells us how to start your server.
Automatic Setup
Smithery will try to automatically generate a pull-request with these files for you when you trigger a deployment. However, in some cases, the setup can fail and you may need to set this up manually.
Subdirectories
If your package is not in the root directory of your repository (in the case of a monorepo), you should place your Dockerfile and smithery.yaml
in the subdirectory that contains your package. You will need to specify the base directory in your server settings on Smithery.
For example, if your MCP server is in the packages/mcp-server
directory, you would:
- Place your
Dockerfile
andsmithery.yaml
in thepackages/mcp-server
directory - Set the base directory to
packages/mcp-server
in your server settings under Github integration
Best Practices
- Testing: Test your MCP server locally before deploying using MCP Inspector. Please ensure your Dockerfile builds locally first before deploying.
- Configuration: Use the
configSchema
to properly define and validate your server's configuration options - Docker Optimization: Keep your Docker image size minimal by using appropriate base images and multi-stage builds