Skip to content

Commit 15be93e

Browse files
Fix: Global Tools not listed for A2A Agents (Issue #841) (#1123)
* a2a Signed-off-by: rakdutta <[email protected]> * a2a Signed-off-by: rakdutta <[email protected]> * a2a tool testing Signed-off-by: rakdutta <[email protected]> * test Signed-off-by: rakdutta <[email protected]> * test Signed-off-by: rakdutta <[email protected]> * return Signed-off-by: rakdutta <[email protected]> * Rebase Signed-off-by: Mihai Criveti <[email protected]> --------- Signed-off-by: rakdutta <[email protected]> Signed-off-by: Mihai Criveti <[email protected]> Co-authored-by: Mihai Criveti <[email protected]>
1 parent dd1a367 commit 15be93e

28 files changed

+109
-73
lines changed

docs/docs/architecture/plugin-spec/.pages

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ nav:
1414
- Performance: 11-performance.md
1515
- Development: 12-development.md
1616
- Testing: 13-testing.md
17-
- Conclusion: 14-conclusion.md
17+
- Conclusion: 14-conclusion.md

docs/docs/architecture/plugin-spec/01-architecture.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,3 @@ mcpgateway/plugins/framework/
7575
- Communicate via MCP protocol over various transports
7676
- 10-100ms latency depending on service and network
7777
- Examples: LlamaGuard, OpenAI Moderation, custom AI services
78-

docs/docs/architecture/plugin-spec/02-core-components.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
### 3.1 Plugin Base Class
55

6-
The base plugin class, of which developers subclass and implement the hooks that are important for their plugins. Hook points are functions that appear interpose on existing MCP and agent-based functionality.
6+
The base plugin class, of which developers subclass and implement the hooks that are important for their plugins. Hook points are functions that appear interpose on existing MCP and agent-based functionality.
77

88
```python
99
class Plugin:
@@ -122,4 +122,3 @@ class PluginInstanceRegistry:
122122
async def shutdown(self) -> None:
123123
"""Shutdown all registered plugins"""
124124
```
125-

docs/docs/architecture/plugin-spec/03-plugin-types.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ The configuration system supports both **native plugins** (running in-process) a
3737

3838
### 4.2 Plugin Configuration Schema
3939

40-
Below is an example of a plugin configuration file. A plugin configuration file can configure one or more plugins in a prioritized list as below. Each individual plugin is an instance of the of a plugin class that subclasses the base `Plugin` object and implements a set of hooks as listed in the configuration.
40+
Below is an example of a plugin configuration file. A plugin configuration file can configure one or more plugins in a prioritized list as below. Each individual plugin is an instance of the of a plugin class that subclasses the base `Plugin` object and implements a set of hooks as listed in the configuration.
4141

4242
```yaml
4343
# plugins/config.yaml
@@ -408,4 +408,3 @@ The manifest enables development tools to provide:
408408
- Follow established tag conventions within your organization
409409

410410
The plugin manifest system provides a foundation for plugin ecosystem management, enabling better development workflows, automated tooling, and enhanced discoverability while maintaining consistency across plugin implementations.
411-

docs/docs/architecture/plugin-spec/04-hook-architecture.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ return PluginResult(
186186

187187
**Processing Model**:
188188

189-
Plugin processing uses short circuiting to abort evaluation in the case of a violation and `continue_processing=False`. If the plugin needs to record side effects, such as the bookkeeping, these plugins should be executed first with the highest priority.
189+
Plugin processing uses short circuiting to abort evaluation in the case of a violation and `continue_processing=False`. If the plugin needs to record side effects, such as the bookkeeping, these plugins should be executed first with the highest priority.
190190

191191
### 5.2 HTTP Header Hook Integration Example
192192

@@ -477,4 +477,3 @@ async def process_elicitation_response(self, response: ElicitationResponse) -> b
477477

478478
return True
479479
```
480-

docs/docs/architecture/plugin-spec/05-hook-system.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,4 +184,3 @@ This document covers administrative operation hooks:
184184
- Gateway Federation Hooks - Peer gateway management *(Future)*
185185
- A2A Agent Hooks - Agent-to-Agent integration management *(Future)*
186186
- Entity Lifecycle Hooks - Tool, resource, and prompt registration *(Future)*
187-

docs/docs/architecture/plugin-spec/06-gateway-hooks.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1667,4 +1667,3 @@ The gateway administrative hooks are organized into the following categories:
16671667
- Implement proper timeout handling for elicitations
16681668
- Cache frequently accessed data (permissions, quotas)
16691669
- Use background tasks for non-critical operations
1670-

docs/docs/architecture/plugin-spec/07-security-hooks.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -758,4 +758,3 @@ async def resource_post_fetch(self, payload: ResourcePostFetchPayload, context:
758758
- Resource post-fetch may take longer due to content processing
759759
- Plugin execution is sequential within priority bands
760760
- Failed plugins don't affect other plugins (isolation)
761-

docs/docs/architecture/plugin-spec/09-security.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,3 @@ except Exception as e:
6565
raise PluginError(f"Plugin error: {plugin.name}")
6666
# Continue with next plugin in permissive mode
6767
```
68-

docs/docs/architecture/plugin-spec/10-error-handling.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,4 +414,3 @@ async def execute(self, plugins: list[PluginRef], ...) -> tuple[PluginResult[T],
414414
raise PluginError(f"Plugin error: {plugin.name}")
415415
# Continue with next plugin
416416
```
417-

0 commit comments

Comments
 (0)