Manage tools, resources, prompts, servers, and federated gateways (remote MCP servers) | Docs | β Star mcp-context-forge on GitHub
| Time | Level | Entity | Message |
|---|
Comma-separated tags
JSON export files only
For cross-environment imports
Virtual Servers let you combine Tools, Resources, and Prompts from the global Tools catalog into a reusable configuration.
| Icon | S. No. | UUID | Name | Description | Tools | Resources | Prompts | Tags | Actions |
|---|---|---|---|---|---|---|---|---|---|
|
{% if server.icon %}
|
{{ loop.index }} | {{ server.id }} | {{ server.name }} | {{ server.description }} | {% if server.associatedTools %} {{ server.associatedTools | map('string') | join(', ') }} {% else %} N/A {% endif %} | {% if server.associatedResources %} {{ server.associatedResources | join(', ') }} {% else %} N/A {% endif %} | {% if server.associatedPrompts %} {{ server.associatedPrompts | join(', ') }} {% else %} N/A {% endif %} | {% if server.tags %} {% for tag in server.tags %} {{ tag }} {% endfor %} {% else %} None {% endif %} | {% if server.isActive %} {% else %} {% endif %} |
This is the global catalog of Tools available. Create a Virtual Server using one of these tools.
| S. No. | Gateway Name | Name | URL | Type | Request Type | Description | Annotations | Tags | Status | Actions |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ loop.index }} | {{ tool.gatewaySlug }} | {{ tool.customNameSlug }} | {{ tool.url }} | {{ tool.integrationType }} | {{ tool.requestType }} | {% set clean_desc = (tool.description or "") | replace('\n', ' ') | replace('\r', ' ') %} {% set refactor_desc = clean_desc | striptags | trim | escape %} {% if refactor_desc | length is greaterthan 120 %} {{ refactor_desc[:120] }}... {% else %} {{ refactor_desc }} {% endif %} | {% if tool.annotations %} {% if tool.annotations.title %} {{ tool.annotations.title }} {% endif %} {% if tool.annotations.readOnlyHint %} π {% endif %} {% if tool.annotations.destructiveHint %} β οΈ {% endif %} {% if tool.annotations.idempotentHint %} π {% endif %} {% if tool.annotations.openWorldHint %} π {% endif %} {% else %} None {% endif %} | {% if tool.tags %} {% for tag in tool.tags %} {{ tag }} {% endfor %} {% else %} None {% endif %} |
{% set enabled = tool.enabled %} {% set reachable =
tool.reachable %} {% if enabled and reachable %} {% set
bg_class = "bg-green-100 text-green-800" %} {% elif enabled
and not reachable %} {% set bg_class = "bg-yellow-100
text-yellow-800" %} {% else %} {% set bg_class = "bg-red-100
text-red-800" %} {% endif %}
{% if enabled %} {% if reachable %}
Active
{% else %}
Offline
{% endif %} {% else %}
Inactive
{% endif %}
{% if not enabled %} π‘Tool is Manually Deactivated. {%
elif not reachable %} π‘The host gateway for this tool
is unreachable. {% else %} π‘Everything stable. {% endif
%}
|
{% if tool.enabled %} {% else %} {% endif %} |
Import multiple tools from a JSON array. The system automatically fixes common formatting issues like tool name spaces and tag formats.
Maximum: 200 tools per import
Click to upload JSON file
Resources are reusable data assets-like text, code, or media-that Tools and Prompts can reference by URI.
| ID | URI | Name | Description | MIME Type | Tags | Status | Actions |
|---|---|---|---|---|---|---|---|
| {{ resource.id }} | {{ resource.uri }} | {{ resource.name }} | {{ resource.description or "N/A" }} | {{ resource.mimeType or "N/A" }} | {% if resource.tags %} {% for tag in resource.tags %} {{ tag }} {% endfor %} {% else %} None {% endif %} | {{ "Active" if resource.isActive else "Inactive" }} | {% if resource.isActive %} {% else %} {% endif %} |
Prompts define reusable message templates with parameters, useful for driving LLM interactions or Tool input.
| ID | Name | Description | Arguments | Tags | Status | Actions |
|---|---|---|---|---|---|---|
| {{ prompt.id }} | {{ prompt.name }} | {{ prompt.description }} | {% for arg in prompt.arguments %}{{ arg.name }}{% if not loop.last %}, {% endif %}{% endfor %} | {% if prompt.tags %} {% for tag in prompt.tags %} {{ tag }} {% endfor %} {% else %} None {% endif %} | {{ "Active" if prompt.isActive else "Inactive" }} | {% if prompt.isActive %} {% else %} {% endif %} |
Gateways are where you register external MCP servers to federate their tools/resources/prompts into your environment.
| S. No. | Name | URL | Tags | Status | Last Seen | Actions |
|---|---|---|---|---|---|---|
| {{ loop.index }} | {{ gateway.name }} | {{ gateway.url }} | {% if gateway.tags %} {% for tag in gateway.tags %} {{ tag }} {% endfor %} {% else %} No tags {% endif %} |
{% set enabled = gateway.enabled %} {% set reachable =
gateway.reachable %} {% if enabled and reachable %} {% set
bg_class = "bg-green-100 text-green-800" %} {% elif enabled
and not reachable %} {% set bg_class = "bg-yellow-100
text-yellow-800" %} {% else %} {% set bg_class = "bg-red-100
text-red-800" %} {% endif %}
{% if enabled %} {% if reachable %}
Active
{% else %}
Offline
{% endif %} {% else %}
Inactive
{% endif %}
{% if not enabled %} π‘Gateway is Manually Deactivated
{% elif not reachable %} π‘Gateway is Not Reachable {%
else %} π‘Everything stable. {% endif %}
|
{{ gateway.lastSeen.strftime('%Y-%m-%d %H:%M:%S') if gateway.lastSeen else 'Never' }} | {% if gateway.authType == 'oauth' %} π Authorize {% endif %} {% if gateway.enabled %} {% else %} {% endif %} |
Manage Agent-to-Agent compatible agents that can be integrated as tools
{{ agent.description or "" }}
No A2A agents registered yet.
Roots define the base folders accessible for file-based Resources. They enable MCP servers to browse local content.
| ID | URI | Name | Actions |
|---|---|---|---|
| {{ root.id }} | {{ root.uri }} | {{ root.name }} |
Metrics provide visibility into Tool, Resource, Prompt, and Server usage across your Gateway-helpful for debugging and optimization.
Choose the configuration format for your MCP client:
name
- must start with letter, only
letters/numbers/dots/underscores/hyphens
url
(http/https/ws/wss only),
description,
tags
(array only)
requestType
("GET", "POST"),
integrationType
("REST", "MCP")
or drag and drop
JSON files only