Port MCP Server
The Port IO MCP server is a Model Context Protocol (MCP) server, enabling advanced automations and natual language interactions for developers and AI applications.
What You Can Do With Port MCP
Find Information Quickly
- Get entity details - “Who is the owner of service X?”
- Check on-call status - “Who is on call right now?”
- Get catalog insights - “How many services do we have in production?”
Analyze Scorecards
- Identify weak points - “Which services are failing for the gold level and why?”
- Get compliance status - “Show me all services that don’t meet our security requirements”
- Improve quality - “What do I need to fix to reach the next scorecard level?”
Create Resources
- Build scorecards - “Create a new scorecard called ‘Security Posture’ with levels Basic, Silver, and Gold”
- Define rules - “Add a rule that requires services to have a team owner to reach the Silver level”
- Setup quality gates - “Create a rule that checks if services have proper documentation”
We’re continuously expanding Port MCP’s capabilities. Have a suggestion? We’d love to hear your feedback on our roadmap!
Installation
Prerequisites
Before you begin, you’ll need:
Create a Port Account (if you don’t have one):
- Visit Port.io
- Sign up for an account
Obtain Port Credentials:
- Navigate to your Port dashboard
- Go to Settings > Credentials
- Save both the Client ID and Client Secret
Installation Requirements:
- Either Docker installed on your system
- OR uvx package manager installed
[!NOTE] You will also need to provide your Port region, which is either EU or US. If not provided, the default is EU.
Installation methods
Port MCP Server can be installed using two methods:
Package Installation (uvx)
Use our official Port MCP server package.
Docker Installation
Use our official Docker image:
docker pull ghcr.io/port-labs/port-mcp-server:latest
Additional configurations
You can pass these additional arguments for more advanced configuration:
Configuration Parameter | UVX Flag | Docker Environment Variable | Description | Default Value |
---|---|---|---|---|
Log Level | log-level | PORT_LOG_LEVEL | Controls the level of log output | ERROR |
API Validation | api-validation-enabled | PORT_API_VALIDATION_ENABLED | Controls if API schema should be validated and fail if it’s not valid | False |
Usage with Claude Desktop
- Go to Settings > Developer and click on “Edit config”.
- Edit the
claude_desktop_config.json
file and add the below configuration based on the installation method. - Save the file and restart Claude.
- In a new chat, check the Tools section and you’ll see Port available tools.
Docker
[!TIP] Consider using the full path to Docker (e.g.,
/usr/local/bin/docker
) instead of justdocker
. You can find this path by runningwhich docker
in your terminal. Using the full path helps avoid PATH resolution issues and ensures consistent behavior across different shell environments.
{
"mcpServers": {
"port": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PORT_CLIENT_ID",
"-e",
"PORT_CLIENT_SECRET",
"-e",
"PORT_REGION",
"-e",
"PORT_LOG_LEVEL",
"ghcr.io/port-labs/port-mcp-server:latest"
],
"env": {
"PORT_CLIENT_ID": "<PORT_CLIENT_ID>",
"PORT_CLIENT_SECRET": "<PORT_CLIENT_SECRET>",
"PORT_REGION": "<PORT_REGION>",
"PORT_LOG_LEVEL": "<PORT_LOG_LEVEL>"
}
}
}
}
uvx
[!NOTE] If you want to run the command from a virtual Python environment, add a
PYTHONPATH
variable to theenv
object with its path, e.g.,/path/to/your/venv/bin/python
.
{
"mcpServers": {
"Port": {
"command": "uvx",
"args": [
"mcp-server-port@0.2.8",
"--client-id",
"<PORT_CLIENT_ID>",
"--client-secret",
"<PORT_CLIENT_SECRET>",
"--region",
"<PORT_REGION>"
],
"env": {
"PORT_CLIENT_ID": "<PORT_CLIENT_ID>",
"PORT_CLIENT_SECRET": "<PORT_CLIENT_SECRET>",
"PORT_REGION": "<PORT_REGION>",
"PYTHONPATH": "/Users/matangrady/.venv-port-mcp/bin/python"
}
}
}
}
Usage with Cursor
- Go to Cursor > Settings > Cursor Settings.
- Click on the MCP tab, and “Add new global MCP server”.
- Edit the
mcp.json
file and add the below configuration based on the installation method. - Save the file and return to Cursor Settings.
- You will see the new Port server and its available tools.
Docker
[!TIP] Consider using the full path to Docker (e.g.,
/usr/local/bin/docker
) instead of justdocker
. You can find this path by runningwhich docker
in your terminal. Using the full path helps avoid PATH resolution issues and ensures consistent behavior across different shell environments.
{
"mcpServers": {
"port": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PORT_CLIENT_ID",
"-e",
"PORT_CLIENT_SECRET",
"-e",
"PORT_REGION",
"-e",
"PORT_LOG_LEVEL",
"ghcr.io/port-labs/port-mcp-server:latest"
],
"env": {
"PORT_CLIENT_ID": "<PORT_CLIENT_ID>",
"PORT_CLIENT_SECRET": "<PORT_CLIENT_SECRET>",
"PORT_REGION": "<PORT_REGION>",
"PORT_LOG_LEVEL": "<PORT_LOG_LEVEL>"
}
}
}
}
uvx
[!NOTE] If you want to run the command from a virtual Python environment, add a
PYTHONPATH
variable to theenv
object with its path, e.g.,/path/to/your/venv/bin/python
.
{
"mcpServers": {
"Port": {
"command": "uvx",
"args": [
"mcp-server-port@0.2.8",
"--client-id",
"<PORT_CLIENT_ID>",
"--client-secret",
"<PORT_CLIENT_SECRET>",
"--region",
"<PORT_REGION>"
],
"env": {
"PORT_CLIENT_ID": "<PORT_CLIENT_ID>",
"PORT_CLIENT_SECRET": "<PORT_CLIENT_SECRET>",
"PORT_REGION": "<PORT_REGION>",
"PYTHONPATH": "/Users/matangrady/.venv-port-mcp/bin/python"
}
}
}
}
Usage with VS Code
[!TIP] VS Code can automatically discover MCP servers already installed in Cursor and Claude.
[!NOTE] For quick installation, use the one-click install buttons and select where to add the MCP configuration. Make sure to replace the placeholders with your Port credentials.
Docker quick installation uvx quick installation
For manual installation follow these steps:
- Go to the Command Palette by pressing
Cmd + Shift + P
/Ctrl + Shift + P
. - Type
Preferences: Open User Settings (JSON)
and press enter. - Edit the
settings.json
file and add the below configuration under themcp
>servers
. - Use Copilot in Agent mode, make sure the server is running and see its available Port tools.
Docker
[!TIP] Consider using the full path to Docker (e.g.,
/usr/local/bin/docker
) instead of justdocker
. You can find this path by runningwhich docker
in your terminal. Using the full path helps avoid PATH resolution issues and ensures consistent behavior across different shell environments.
"Port": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PORT_CLIENT_ID",
"-e",
"PORT_CLIENT_SECRET",
"-e",
"PORT_REGION",
"ghcr.io/port-labs/port-mcp-server:latest"
],
"env": {
"PORT_CLIENT_ID": "<PORT_CLIENT_ID>",
"PORT_CLIENT_SECRET": "<PORT_CLIENT_SECRET>",
"PORT_REGION": "<PORT_REGION>"
}
}
uvx
[!NOTE] If you want to run the command from a virtual Python environment, add a
PYTHONPATH
variable to theenv
object with its path, e.g.,/path/to/your/venv/bin/python
.
"Port": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-server-port@0.2.8",
"--client-id",
"<PORT_CLIENT_ID>",
"--client-secret",
"<PORT_CLIENT_SECRET>",
"--region",
"<PORT_REGION>"
],
"env": {
"PORT_CLIENT_ID": "<PORT_CLIENT_ID>",
"PORT_CLIENT_SECRET": "<PORT_CLIENT_SECRET>",
"PORT_REGION": "<PORT_REGION>"
}
}
Usage with Neovim (mcphub.nvim
)
To use Port MCP Server in Neovim, use the plugin mcphub.nvim with one of the supported LLM extensions, such as Avante or CodeCompanion.
Once installed, add Port’s MCP server configuration:
- Access the servers config with the command
:MCPHub
and navigate to the Config tab, or open the servers config file directly, usually located at~/.config/mcphub/servers.json
. - Add the configuration for Port MCP Server under the
mcpServers
section (see below). - Save the configuration file.
- Make sure you have the environment variables
PORT_CLIENT_ID
andPORT_CLIENT_SECRET
set in your Neovim environment. - Restart the servers by opening the MCPHub view with
:MCPHub
and triggering the restart command withR
. - You should see the server running and accessible from the MCPHub view. To verify, use the
@mcp
tool in your LLM extension. For example, prompt:@mcp list my blueprints
.
Check the mcphub.nvim documentation for more details on how to use it.
Docker Configuration Example for mcphub.nvim
[!NOTE] Make sure that you have the environment variables
PORT_CLIENT_ID
andPORT_CLIENT_SECRET
set with your Port credentials.
{
"mcpServers": {
"port": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PORT_CLIENT_ID",
"-e",
"PORT_CLIENT_SECRET",
"-e",
"PORT_REGION",
"ghcr.io/port-labs/port-mcp-server:latest"
],
"env": {
"PORT_REGION": "EU",
"PORT_CLIENT_ID": "",
"PORT_CLIENT_SECRET": ""
}
}
}
}
uvx
Configuration Example for mcphub.nvim
[!NOTE] Make sure that you have the environment variables
PORT_CLIENT_ID
andPORT_CLIENT_SECRET
set with your Port credentials.
{
"mcpServers": {
"port": {
"command": "uvx",
"args": [
"mcp-server-port@0.2.8",
"--client-id",
"PORT_CLIENT_ID",
"--client-secret",
"PORT_CLIENT_SECRET",
"--region",
"PORT_REGION"
],
"env": {
"PORT_CLIENT_ID": "",
"PORT_CLIENT_SECRET": "",
"PORT_REGION": "EU"
}
}
}
}
Available Tools
Blueprint Tools
get_blueprints
- Retrieve a list of all blueprints from Port
- Optional inputs:
detailed
(boolean, default: false): Return complete schema details for each blueprint
- Returns: Formatted text representation of all available blueprints
get_blueprint
- Retrieve information about a specific blueprint by its identifier
- Required inputs:
blueprint_identifier
(string): The unique identifier of the blueprint to retrieve
- Optional inputs:
detailed
(boolean, default: true): Return complete schema details
create_blueprint
- Create a new blueprint in Port
- Required inputs:
- Various fields including identifier, title, properties, etc.
- Returns: The created blueprint object
update_blueprint
- Update an existing blueprint
- Required inputs:
identifier
(string): The unique identifier of the blueprint to update- Various fields to update
- Returns: The updated blueprint object
delete_blueprint
- Delete a blueprint from Port
- Required inputs:
blueprint_identifier
(string): The unique identifier of the blueprint to delete
- Returns: Success status
Entity Tools
get_entities
- Retrieve all entities for a given blueprint
- Required inputs:
blueprint_identifier
(string): The identifier of the blueprint to get entities for
- Optional inputs:
detailed
(boolean, default: false): Return complete entity details including properties
get_entity
- Retrieve information about a specific entity
- Required inputs:
blueprint_identifier
(string): The identifier of the blueprint the entity belongs toentity_identifier
(string): The unique identifier of the entity to retrieve
- Optional inputs:
detailed
(boolean, default: true): Return complete entity details
create_entity
- Create a new entity for a specific blueprint
- Required inputs:
blueprint_identifier
(string): The identifier of the blueprint to create the entity forentity
(object): The entity data following the blueprint schema
update_entity
- Update an existing entity
- Required inputs:
blueprint_identifier
(string): The identifier of the blueprint the entity belongs toentity_identifier
(string): The unique identifier of the entity to updateentity
(object): The updated entity data
delete_entity
- Delete an entity
- Required inputs:
blueprint_identifier
(string): The identifier of the blueprint the entity belongs toentity_identifier
(string): The unique identifier of the entity to delete
- Optional inputs:
delete_dependents
(boolean, default: false): If true, also deletes all dependencies
Scorecard Tools
get_scorecards
- Retrieve all scorecards from Port
- Optional inputs:
detailed
(boolean, default: false): Return complete scorecard details
get_scorecard
- Retrieve information about a specific scorecard by its identifier
- Required inputs:
scorecard_id
(string): The unique identifier of the scorecard to retrieveblueprint_id
(string, optional): The identifier of the blueprint the scorecard belongs to
create_scorecard
- Create a new scorecard for a specific blueprint
- Required inputs:
blueprint_id
(string): The identifier of the blueprint to create the scorecard foridentifier
(string): The unique identifier for the new scorecardtitle
(string): The display title of the scorecardlevels
(list): List of levels for the scorecard
- Optional inputs:
rules
(list): List of rules for the scorecarddescription
(string): Description for the scorecard
update_scorecard
- Update an existing scorecard
- Required inputs:
blueprint_identifier
(string): The identifier of the blueprint the scorecard belongs toscorecard_identifier
(string): The unique identifier of the scorecard to update- Various fields to update (title, levels, rules, etc.)
- Returns: The updated scorecard object
delete_scorecard
- Delete a scorecard from Port
- Required inputs:
blueprint_identifier
(string): The identifier of the blueprint the scorecard belongs toscorecard_identifier
(string): The unique identifier of the scorecard to delete
- Returns: Success status
AI Agents Tool
invoke_ai_agent
- Invoke a Port AI agent with a specific prompt
- Required inputs:
prompt
(string): The prompt to send to the AI agent
- Returns: Invocation status and message from the AI agent
Local Development
For developing and testing new functionalities locally before publishing a new version, you can configure your MCP client (e.g., Cursor) to use your local cloned repository.
Prerequisites
- Clone the repository: If you haven’t already, clone the
port-mcp-server
repository to your local machine. - Set up the environment:
- Navigate to the cloned repository’s root directory.
- Run
make install
. This command should set up a virtual environment (venv) and install all necessary dependencies. - Ensure the virtual environment is created (usually in a
.venv
directory within the repository).
Configuration Example
Below is an example of how you might configure your local development server. You’ll need to replace the placeholder paths with the actual paths on your system.
Important:
- The
command
should point to the Python executable within your local repository’s virtual environment. - The
PYTHONPATH
in theenv
object should point to the root directory of your cloned repository.
{
"mcpServers": {
"port_local": {
"command": "/path/to/your/port-mcp-server/.venv/bin/python", // Replace with the actual path to the venv Python
"args": [
"-m",
"src",
"--client-id",
"<YOUR_PORT_CLIENT_ID>",
"--client-secret",
"<YOUR_PORT_CLIENT_SECRET>",
"--region",
"<YOUR_PORT_REGION>", // e.g., EU or US
"--log-level",
"DEBUG" // Or your preferred log level
],
"env": {
"PORT_CLIENT_ID": "<YOUR_PORT_CLIENT_ID>",
"PORT_CLIENT_SECRET": "<YOUR_PORT_CLIENT_SECRET>",
"PORT_REGION": "<YOUR_PORT_REGION>",
"PORT_LOG_LEVEL": "DEBUG",
"PYTHONPATH": "/path/to/your/port-mcp-server" // Replace with the actual path to your repository
}
}
}
}
After setting this up, your MCP client will use your local version of the server, allowing you to test changes from your current branch.
Feedback and Roadmap
We’re continuously improving Port MCP and would love to hear from you! Please share your feedback and feature requests on our roadmap page.
Troubleshooting
If you encounter authentication errors, verify that:
- Your Port credentials are correctly set in the arguments.
- You have the necessary permissions.
- The credentials are properly copied to your configuration.
License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License.
Port.io Integration Server
Project Details
- port-labs/port-mcp-server
- MIT License
- Last Updated: 6/16/2025
Recomended MCP Servers
A MCP (Model Context Protocol) server for PowerPoint manipulation using python-pptx. This server provides tools for creating, editing,...
An MCP server to query the NIST National Vulnerability Database (NVD)
这个项目是一个基于Model Context Protocol (MCP)的AutoCAD集成服务器,它允许通过自然语言与AutoCAD进行交互。通过这个服务器,用户可以使用Claude等大型语言模型来创建、修改和分析AutoCAD图纸,同时还可以存储和查询CAD元素的相关数据。目前制作参考学习,仅实现端到端之间的通信,具体工具函数尚未晚上
A Model Context Protocol (MCP) server for Google Cloud
A Model Context Protocol (MCP) server that enables AI assistants to perform web searches using SearXNG, a privacy-respecting...
MCP server that provides tools and resources for interacting with n8n API
壹心理测试+小程序源码
Enhanced MCP server for deep web research
MCP Server for Vision Agent Tools