A custom MCP server that combines Serena's semantic code editing capabilities with Git/GitHub operations, packaged as a Docker image for Archestra's K8s-based MCP server runtime.
Project & Configuration
activate_project- Activates a project by name or pathcheck_onboarding_performed- Checks if project onboarding was completedonboarding- Performs project onboardingget_current_config- Print current agent configurationprepare_for_new_conversation- Prepares for a new conversation
Symbol Operations
find_symbol- Retrieves symbols/code entities by name path patternfind_referencing_symbols- Finds references to a symbolget_symbols_overview- Get high-level overview of code symbols in a filerename_symbol- Renames a symbol throughout the codebasereplace_symbol_body- Replaces the body of a symbolinsert_after_symbol- Inserts content after a symbol definitioninsert_before_symbol- Inserts content before a symbol definition
File Operations
create_text_file- Write a new file or overwrite an existing fileread_file- Reads a file or a chunk of itlist_dir- Lists files and directoriesfind_file- Finds files matching a file maskreplace_content- Replaces content matching a pattern in a filesearch_for_pattern- Flexible search for patterns in the codebase
Shell Execution
execute_shell_command- Execute a shell command and return output
Memory Management
list_memories- List available memoriesread_memory- Read content of a memory filewrite_memory- Write information to a memory fileedit_memory- Edit content in a memory filedelete_memory- Delete a memory file
Thinking Tools
think_about_collected_information- Reflect on collected information sufficiencythink_about_task_adherence- Check if still on track with the taskthink_about_whether_you_are_done- Reflect on task completion
git_clone- Clone a Git repository to the workspacegit_status- Get the git status of a repositorygit_diff- Show the diff of uncommitted changesgit_commit- Stage and commit changesgit_push- Push commits to the remotegit_checkout_branch- Create a new branch or switch to an existing branch
github_create_pr- Create a pull request on GitHubgithub_list_prs- List pull requests for a repositorygithub_get_issue- Get details of a GitHub issue
| Variable | Required | Description |
|---|---|---|
GITHUB_TOKEN |
Yes | GitHub Personal Access Token for API operations |
WORKSPACE_DIR |
No | Directory for cloned repos (default: /workspace) |
# Build the Docker image
make build
# Build and push to GCP Artifact Registry
make push- Add this MCP server to the internal catalog
- Create a profile with this server assigned
- Configure
GITHUB_TOKENin the server's environment variables - Start coding!
# Build the Docker image
make build
# Run with a GitHub token
export GITHUB_TOKEN=your-token-here
make run
# Or run an interactive shell for debugging
make shell- Build the image:
make build - Start the container:
docker run -it --rm \ -e GITHUB_TOKEN=$GITHUB_TOKEN \ -v $(pwd)/workspace:/workspace \ -p 9121:9121 \ europe-west1-docker.pkg.dev/friendly-path-465518-r6/archestra-public/archestra-coding-agent:0.0.1
- Connect an MCP client to the server on port 9121
# Install test dependencies
pip install -r requirements.txt pytest
# Run tests
make testUse the catalog-entry.json file to add this MCP server to the internal catalog:
- Go to the MCP Catalog page in Archestra
- Click "Add Internal Server"
- Import the configuration from
catalog-entry.json - Or use the API:
curl -X POST http://localhost:9000/api/internal-mcp-catalog \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d @catalog-entry.json
# Install dependencies
pip install -r requirements.txt
# Run tests
pytest tests/ -v┌─────────────────────────────────────────────────────────┐
│ K8s Pod │
│ ┌─────────────────────────────────────────────────┐ │
│ │ archestra-coding-agent │ │
│ │ ┌─────────────┐ ┌─────────────────────────┐ │ │
│ │ │ Serena │ │ Custom Git/GitHub │ │ │
│ │ │ MCP Server │ │ Tools │ │ │
│ │ └──────┬──────┘ └───────────┬─────────────┘ │ │
│ │ │ │ │ │
│ │ └─────────┬───────────┘ │ │
│ │ ▼ │ │
│ │ ┌─────────────────┐ │ │
│ │ │ /workspace │ │ │
│ │ │ (cloned repo) │ │ │
│ │ └─────────────────┘ │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘