Amplify is open source and welcomes contributions. This guide covers how to contribute providers, models, templates, skills, and MCP servers.
Getting started
To contribute to Amplify:
- Fork the repository on GitHub
- Clone your fork locally
- Create a branch for your contribution
- Make your changes and write tests
- Submit a pull request with a clear description
sh
git clone https://github.com/your-username/amplify.git
cd amplify
git checkout -b my-contribution
npm install
npm run dev
Code style
Amplify uses TypeScript throughout, ESLint for linting, and Prettier for formatting. Run npm run lint before submitting a PR.
Contributing providers
To add a new LLM provider:
- Create a provider adapter in
src/providers/your-provider.ts - Implement the
ProviderAdapterinterface - Add configuration schema in
src/providers/your-provider.schema.ts - Register the provider in
src/providers/index.ts - Add tests in
tests/providers/your-provider.test.ts
typescript
import { ProviderAdapter, ChatRequest, ChatResponse } from '@amplify/core';
export class MyProvider extends ProviderAdapter {
name = 'my-provider';
async chat(request: ChatRequest): AsyncGenerator<string> {
const response = await fetch('https://api.my-provider.com/v1/chat', {
method: 'POST',
headers: { 'Authorization': `Bearer ${this.apiKey}` },
body: JSON.stringify(this.formatRequest(request)),
});
for await (const chunk of response.body) {
yield this.parseChunk(chunk);
}
}
}
See existing provider implementations
Contributing templates
To add a new project template:
- Create template files in
templates/your-template/ - Add a template manifest
templates/your-template/manifest.json - Include README with usage instructions
- Register the template in the templates index
json
{
"name": "my-framework",
"description": "A template for my framework",
"files": {
"package.json": "templates/my-framework/package.json",
"src/index.ts": "templates/my-framework/src/index.ts"
},
"commands": ["npm install"],
"devCommand": "npm run dev"
}
Contributing skills and MCP servers
To add a new skill:
- Create skill definition in
skills/your-skill.yaml - Add skill templates in
skills/your-skill/templates/ - Add skill documentation in
skills/your-skill/docs/ - Register the skill in the skills index
To add a new MCP server:
- Create server in
mcp-servers/your-server/ - Implement the MCP specification (tools, resources, prompts)
- Add configuration schema
- Register in MCP servers index
Review process
All contributions go through a review process. Provider and MCP server contributions require additional security review since they handle API keys and external communications.
Learn about MCP server development