-
Notifications
You must be signed in to change notification settings - Fork 60
Added new guide for managing MCP Server Registry with governance #2887
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Added new guide for managing MCP Server Registry with governance #2887
Conversation
This pull request is automatically being deployed by Amplify Hosting (learn more). |
"status": { | ||
"title": "Approval Status", | ||
"type": "string", | ||
"enum": ["approved", "pending", "rejected"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't yet read everything, but adding here approval status means you are also adding actions to request a new MCP server?
"description": "What this MCP server does and when to use it" | ||
}, | ||
"capabilities": { | ||
"title": "Capabilities", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would name it "labels"
}, | ||
"description": "Tags representing server capabilities (e.g., java, database, testing)" | ||
}, | ||
"installation_url": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
usually installation of an MCP server is complicated, and there are "tweaks" in each organization. So I feel like installation instructions is actually a markdown
"format": "url", | ||
"description": "Source code repository location" | ||
}, | ||
"tools": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would expect tools to be a separate blueprint and managed via relations. Please see what Sebastian built
"description": "List of MCP tools provided by this server" | ||
}, | ||
"prompts": { | ||
"title": "Available Prompts", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here, I would ingest prompts to the prompt blueprint (see our docs we already built a prompt blueprint you can refer to it)
"format": "date-time", | ||
"description": "When this server was approved for use" | ||
}, | ||
"requested_by": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should be a relation if its relevant
}, | ||
"description": "List of MCP prompts provided by this server" | ||
}, | ||
"approval_date": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think its necessary
Now that we have our data model setup, let's explore how to populate and discover MCP servers in the catalog. | ||
You can add MCP servers to your Port catalog using three methods: | ||
|
||
<Tabs groupId="ingestion-method" defaultValue="ui" values={[ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's an additional method which is to run a dummy MCP client.
Sebastian built one in Java, I suggest we "migrate" it to something more generic, like python/node (depends), and see how we can incorporate this.
The idea would be:
- Run the server using this script/repo (Example)
- The client will list the server & its tools and will update Port
Replace `YOUR/SLACK/WEBHOOK` with your actual [Slack webhook URL](https://api.slack.com/messaging/webhooks). | ||
::: | ||
|
||
## Python script for metadata extraction |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This sounds like yet another method to ingest MCP servers.
A script that runs over an existing repo, extract the tools & server data, and ingest into Port.
See above my comment on running the server. both options are valid.
Consider if it makes more sense for this script to be stored in port-experimental (and it could also be a repsotiry of some sort if its complex)
Description
Added new guide for managing MCP Server Registry with governance and automation
Added docs pages
Please also include the path for the added docs
/guides/all/manage-mcp-registry
)Updated docs pages
Please also include the path for the updated docs