Model Context Protocol (MCP)
Early Access
Try our newest feature! Only available through reach out. Contact us to join the early access program and get priority support.
Unizo offers an MCP server that integrates SCM platforms with any LLM provider supporting the MCP protocol. This enables your AI agent to perform repository operations across GitHub, GitLab, Bitbucket, and Azure DevOps via a single MCP server.
Supported Tools & Use Cases
The following tools are available in the SCM MCP Server:
Tool Name | Description |
---|---|
list_services | Get list of available SCM services/providers |
list_integrations | Get integrations for a specific service |
list_organizations | Browse SCM organizations |
get_organization | Get details for a specific organization |
list_repositories | Browse repositories within an organization |
get_repository | Get details for a specific repository |
list_branches | Browse branches within a repository |
get_branch | Get details for a specific branch |
list_commits | Browse commit history for a repository |
get_commit | Get details for a specific commit |
list_pull_requests | Browse pull requests for a repository |
get_pull_request | Get details for a specific pull request |
create_pull_request | Create new pull requests |
update_pull_request | Update existing pull requests |
Tool Reference
list_services
Get list of available SCM services/providers
Parameters:
- None
Returns:
List of available SCM services (e.g., GitHub, GitLab, Bitbucket)
list_integrations
Get integrations for a specific service
Parameters:
service
(string, required): Service name to get integrations for
Returns:
List of integrations available for the specified service
list_organizations
Browse SCM organizations
Parameters:
integration_id
(string, optional): Integration ID to useoffset
(integer, optional, default: 0)limit
(integer, optional, default: 20)
Returns:
List of SCM organizations with pagination information
get_organization
Get details for a specific organization
Parameters:
organization_id
(string, required)integration_id
(string, optional)
Returns:
Organization details or error if not found
list_repositories
Browse repositories within an organization
Parameters:
organization_id
(string, required)integration_id
(string, optional)offset
(integer, optional, default: 0)limit
(integer, optional, default: 20)
Returns:
List of repositories for the organization
get_repository
Get details for a specific repository
Parameters:
organization_id
(string, required)repository_id
(string, required)integration_id
(string, optional)
Returns:
Repository details or error if not found
list_branches
Browse branches within a repository
Parameters:
organization_id
(string, required)repository_id
(string, required)integration_id
(string, optional)offset
(integer, optional, default: 0)limit
(integer, optional, default: 20)sort
(string, optional): Field to sort by
Returns:
List of branches for the repository
get_branch
Get details for a specific branch
Parameters:
organization_id
(string, required)repository_id
(string, required)branch_id
(string, required)integration_id
(string, optional)
Returns:
Branch details or error if not found
list_commits
Browse commit history for a repository
Parameters:
organization_id
(string, required)repository_id
(string, required)integration_id
(string, optional)offset
(integer, optional, default: 0)limit
(integer, optional, default: 20)sort
(string, optional): Field to sort by
Returns:
List of commits for the repository
get_commit
Get details for a specific commit
Parameters:
organization_id
(string, required)repository_id
(string, required)commit_id
(string, required)integration_id
(string, optional)
Returns:
Commit details or error if not found
list_pull_requests
Browse pull requests for a repository
Parameters:
organization_id
(string, required)repository_id
(string, required)integration_id
(string, optional)offset
(integer, optional, default: 0)limit
(integer, optional, default: 20)sort
(string, optional)
Returns:
List of pull requests for the repository
get_pull_request
Get details for a specific pull request
Parameters:
organization_id
(string, required)repository_id
(string, required)pull_request_id
(string, required)integration_id
(string, optional)
Returns:
Pull request details or error if not found
create_pull_request
Create new pull requests
Parameters:
organization_id
(string, required)repository_id
(string, required)title
(string, required)source
(string, required): Source branchtarget
(string, required): Target branchdescription
(string, optional)state
(string, optional, default: opened)visibility
(string, optional, default: private)integration_id
(string, optional)
Returns:
Created pull request details with assigned ID
update_pull_request
Update existing pull requests
Parameters:
organization_id
(string, required)repository_id
(string, required)pull_request_id
(string, required)title
(string, optional)description
(string, optional)source
(string, optional)target
(string, optional)state
(string, optional)visibility
(string, optional)integration_id
(string, optional)
Returns:
Updated pull request details
Data Models
Pull Request State Values
opened
: Pull request is open and awaiting reviewclosed
: Pull request was closed without mergingmerged
: Pull request was successfully merged
Pull Request Visibility Values
public
: Pull request is publicly visibleprivate
: Pull request is private to organization members
Download Types
ONE_STEP_DOWNLOAD
: Direct downloadTWO_STEPS_DOWNLOAD
: Two-step download processTHREE_STEPS_DOWNLOAD
: Three-step download process
Repository Information
- Basic Info: ID, name, description, language
- Metadata: Size, privacy status, archive status
- URLs: API endpoints and web interface links
- Download: Repository download configuration
- Timestamps: Creation and last update times
- Organization: Parent organization details
Branch Information
- Basic Info: Name, SHA, enabled status
- Commit Details: Latest commit information
- Author Info: Author name and commit timestamp
- Committer Info: Committer name and timestamp
- Download: Branch-specific download options
Commit Information
- Identifiers: SHA, unique ID
- URLs: API and web interface links
- Author: Commit author information
- Parents: Parent commit references
Installation
Prerequisites
- A Unizo API key
- An active SCM integration (GitHub, GitLab, Bitbucket, or Azure DevOps)
- Node.js v20 or higher
MCP Configuration
Here is an example configuration for setting up the Unizo SCM MCP server:
{
"mcpServers": {
"unizo-scm": {
"command": "npx",
"args": [
"mcp-remote",
"http://api.unizo.ai/mcp/scm",
"--allow-http",
"--header",
"apikey:${UNIZO_API_KEY}"
],
"env": {
"UNIZO_API_KEY": "your_api_key"
}
}
}
}
Client Setup
For detailed setup instructions with specific AI clients:
Environment Variables
The following environment variables are required:
UNIZO_API_KEY
: Your Unizo API key Your Unizo API key
Error Handling
All tools return errors in a consistent format:
{
"error": {
"code": "REPOSITORY_NOT_FOUND",
"message": "Repository 'example/repo' not found"
}
}
Common error codes:
INTEGRATION_NOT_FOUND
: Invalid integration IDREPOSITORY_NOT_FOUND
: Repository doesn't exist or no accessBRANCH_NOT_FOUND
: Branch doesn't existFILE_NOT_FOUND
: File path not foundRATE_LIMIT_EXCEEDED
: API rate limit reachedUNAUTHORIZED
: Invalid credentials or permissions