Skip to content
This repository was archived by the owner on Oct 17, 2025. It is now read-only.

Commit e0ed17d

Browse files
authored
Merge branch 'main' into dheeraj-work
2 parents 80ff642 + a1ccbf1 commit e0ed17d

File tree

9 files changed

+482
-93
lines changed

9 files changed

+482
-93
lines changed

CONTRIBUTING.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Contributing Guidelines
2+
3+
Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional
4+
documentation, we greatly value feedback and contributions from our community.
5+
6+
Please read through this document before submitting any issues or pull requests to ensure we have all the necessary
7+
information to effectively respond to your bug report or contribution.
8+
9+
10+
## Reporting Bugs/Feature Requests
11+
12+
We welcome you to use the GitHub issue tracker to report bugs or suggest features.
13+
14+
When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already
15+
reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:
16+
17+
* A reproducible test case or series of steps
18+
* The version of our code being used
19+
* Any modifications you've made relevant to the bug
20+
* Anything unusual about your environment or deployment
21+
22+
23+
## Contributing via Pull Requests
24+
Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:
25+
26+
1. You are working against the latest source on the *main* branch.
27+
2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already.
28+
3. You open an issue to discuss any significant work - we would hate for your time to be wasted.
29+
30+
To send us a pull request, please:
31+
32+
1. Fork the repository.
33+
2. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change.
34+
3. Ensure local tests pass.
35+
4. Commit to your fork using clear commit messages.
36+
5. Send us a pull request, answering any default questions in the pull request interface.
37+
6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.
38+
39+
GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
40+
[creating a pull request](https://help.github.com/articles/creating-a-pull-request/).
41+
42+
43+
## Finding contributions to work on
44+
Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 'help wanted' issues is a great place to start.
45+
46+
47+
## Code of Conduct
48+
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
49+
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
50+
opensource-codeofconduct@amazon.com with any additional questions or comments.
51+
52+
53+
## Security issue notifications
54+
If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue.
55+
56+
57+
## Licensing
58+
59+
See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution.

README.md

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
[Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) is an open standard protocol that allows AI Models to connect with external systems, tools, and data sources. A common problem that enterprises face while using MCP servers is that there is a need for a central point of access to a curated list of MCP servers and a catalog of such servers. This is the precise problem that this application provides a solution for by implementing an **MCP Gateway & Registry**.
1313

14+
**<u>Demo Video</u>**: [https://www.youtube.com/watch?v=o_Wich7AChk](https://www.youtube.com/watch?v=o_Wich7AChk)
1415

1516
## Architecture
1617

@@ -124,7 +125,7 @@ flowchart TB
124125

125126
## Prerequisites
126127

127-
* An Amazon EC2 machine for running this solution.
128+
* An Amazon EC2 machine with a standard Ubuntu AMI for running this solution.
128129
* An SSL cert for securing the communication to the Gateway. _This Gateway uses a self-signed cert by default and is also available over HTTP_.
129130
* One of the example MCP servers packaged in this repo uses the [`Polygon`](https://polygon.io/stocks) API for stock ticker data. Get an API key from [here](https://polygon.io/dashboard/signup?redirect=%2Fdashboard%2Fkeys). The server will still start without the API key but you will get a 401 Unauthorized error when using the tools provided by this server.
130131

@@ -197,7 +198,16 @@ The Gateway and the Registry are available as a Docker container. The package in
197198

198199
1. **Navigate to [`http://localhost:7860`](http://localhost:7860) access the Registry**
199200

200-
![MCP Registry](./img/registry.png)
201+
![MCP Registry](docs/img/registry.png)
202+
203+
1. **View logs from the Registry and the built-in MCP servers:**
204+
Logs are available on the local machine in the `/var/log/mcp-gateway` directory.
205+
```
206+
tail -f /var/log/mcp-gateway/*
207+
```
208+
209+
1. **View MCP server metadata:**
210+
Metadata about all MCP servers connected to the Registry is available in `/opt/mcp-gateway/servers` directory. The metadata includes information gathered from `ListTools` as well as information provided while registering the server.
201211
202212
### Running the Gateway over HTTPS
203213
@@ -225,12 +235,35 @@ The Gateway and the Registry are available as a Docker container. The package in
225235
## Usage
226236
227237
1. **Login:** Use the `ADMIN_USER` and `ADMIN_PASSWORD` specified while starting the Gateway container.
228-
3. **Manage Services:**
238+
1. **Manage Services:**
229239
* Toggle the Enabled/Disabled switch. The Nginx config automatically comments/uncomments the relevant `location` block.
230240
* Click "Modify" to edit service details.
231241
* Click the refresh icon (🔄) in the card header to manually trigger a health check and tool list update for enabled services.
232-
4. **View Tools:** Click the tool count icon (🔧) in the card footer to open a modal displaying discovered tools and their schemas for healthy services.
233-
5. **Filter:** Use the sidebar links to filter the displayed services.
242+
1. **View Tools:** Click the tool count icon (🔧) in the card footer to open a modal displaying discovered tools and their schemas for healthy services.
243+
1. **Filter:** Use the sidebar links to filter the displayed services.
244+
245+
### Interact with the MCP Registry via its own built-in MCP server!
246+
247+
The MCP Registry provides an [API](#api-endpoints-brief-overview), this API is also exposed as an MCP server so we have an MCP Server to manage the MCP Registry itself. You can use any MCP Host such as [`Cursor`](https://www.cursor.com/) or others that support remote MCP Servers over SSE. To add the MCP Registry's MCP server to Cursor, simply add the following JSON to Cursor's `mcp.json` file.
248+
249+
>Using the MCP Gateway in Agents and hosts such as Cursor does require that you run the Gateway over HTTPS, see instructions [here](#running-the-gateway-over-https).
250+
251+
```json
252+
{
253+
"mcpServers": {
254+
"mcpgw": {
255+
"url": "https://mymcpgateway.mycorp.com//mcpgw/sse"
256+
}
257+
}
258+
}
259+
```
260+
261+
Cursor should now be able to talk to the MCP Gateway and you should be able to use the tools it provides.
262+
263+
![Cursor MCP server](./docs/img/cursor-mcp-server.png)
264+
265+
**To add more MCP servers provided by the Gateway to Cursor and other tools we would need to wait for this [PR 597](https://github.com/modelcontextprotocol/python-sdk/pull/597) on the MCP Python SDK to be merged into the SDK. Please add a +1 to the PR to make sure it makes it into the May 2025 release of the MCP Python SDK**.
266+
234267

235268
### Steps to add a new MCP server to the Gateway and Registry
236269

docs/img/MCP_tools.gif

563 KB
Loading

docs/img/architecture.png

218 KB
Loading

docs/img/cursor-mcp-server.png

80 KB
Loading

docs/img/mcp-gateway-header.svg

Lines changed: 183 additions & 0 deletions
Loading

docs/img/registry.png

244 KB
Loading

0 commit comments

Comments
 (0)