Add an MCP server
Takeaway
Bundle an MCP server in a plugin when the agent needs a live capability, a tool or a data source, rather than instructions. Declare it in a .mcp.json at the plugin root; on install, Tessl materializes it into each agent's native MCP config.
A skill gives an agent instructions. An MCP (Model Context Protocol) server gives it a tool or data at runtime: query an internal feature-flag service, look up your component library, fetch a live API schema from staging. Add one only when the plugin genuinely needs a capability the agent does not already have. If the job is "tell the agent how to do X", that is a skill, not an MCP server.
This is also available through your agent: tessl install tessl/plugin-creator
Declare the server
Point the manifest at a bundled .mcp.json file:
The value is the literal ".mcp.json" or "./.mcp.json". Declaring it is optional: the file is discovered by convention at the plugin root either way, so the field just lets you be explicit. The file declares the servers the plugin ships, in two transports:
http- a remote server at a URL (http or https), with optionalheaders.stdio- a local server Tessl launches, with acommandand optionalargsandenv.
Do not hard-code secrets in .mcp.json. If a server needs credentials, reference them from the environment rather than committing them.
What happens on install
Each agent configures MCP servers in its own way, and that is exactly the work Tessl does for you. When someone installs the plugin, Tessl reads the bundled .mcp.json and writes the servers into each agent's own MCP configuration, adapting the shape to that agent. A server declared once is available in Claude Code, Cursor, and other supported agents, without the author writing per-agent config.
Validate
Lint the plugin, then confirm the servers materialize by installing into a throwaway project and checking the agent's MCP config:
For the local development loop, see Develop and test locally.
Next
- Create a plugin - the plugin that holds the server.
- Develop and test locally - install and confirm the server appears.
- Publish and update - share the plugin once the server works.