geronimo-pericoli commited on
Commit
3e88fba
·
verified ·
1 Parent(s): 1254511

Update server.py

Browse files
Files changed (1) hide show
  1. server.py +13 -9
server.py CHANGED
@@ -98,12 +98,16 @@ mcp = FastMCP("OnBase", port=port)
98
 
99
 
100
 
101
- @mcp.resource("data://retrievers/list")
102
- async def retrievers_list_resource(ctx: Context, source: str = None) -> dict:
103
  """
104
  Resource interno que proporciona la lista de retrievers.
 
105
  """
106
  try:
 
 
 
107
  # Cargamos los metadatos desde el contexto
108
  retrievers_metadata = ctx.get("retrievers_metadata", {})
109
 
@@ -140,21 +144,21 @@ async def retrievers_list_resource(ctx: Context, source: str = None) -> dict:
140
  "source_used": "none"
141
  }
142
 
143
- # 2. Luego definimos el tool que usará el cliente
144
  @mcp.tool()
145
  async def list_retrievers(ctx: Context, source: str = None) -> dict:
146
  """
147
- Devuelve la lista de retrievers disponibles.
148
- Si se especifica una source y existe, filtra por ella; si no existe, devuelve todas.
149
 
150
  Args:
151
- source (str, optional): Fuente para filtrar. Si no existe, se ignorará.
152
 
153
  Returns:
154
- dict: Misma estructura que el resource pero accesible via tool.
155
  """
156
- # Simplemente delegamos al resource
157
- return await ctx.resources.read("data://retrievers/list", params={"source": source})
 
158
 
159
 
160
 
 
98
 
99
 
100
 
101
+ @mcp.resource("data://retrievers/list/{source}")
102
+ async def retrievers_list_resource(ctx: Context) -> dict:
103
  """
104
  Resource interno que proporciona la lista de retrievers.
105
+ El parámetro 'source' viene en el URI.
106
  """
107
  try:
108
+ # Obtenemos el parámetro source del contexto de ruta
109
+ source = ctx.path_params.get("source")
110
+
111
  # Cargamos los metadatos desde el contexto
112
  retrievers_metadata = ctx.get("retrievers_metadata", {})
113
 
 
144
  "source_used": "none"
145
  }
146
 
147
+
148
  @mcp.tool()
149
  async def list_retrievers(ctx: Context, source: str = None) -> dict:
150
  """
151
+ Devuelve la lista de retrievers disponibles.
 
152
 
153
  Args:
154
+ source (str, optional): Fuente para filtrar. Default None.
155
 
156
  Returns:
157
+ dict: Lista de retrievers.
158
  """
159
+ # Construimos la URI basada en si hay source o no
160
+ uri = "data://retrievers/list/all" if source is None else f"data://retrievers/list/{source}"
161
+ return await ctx.resources.read(uri)
162
 
163
 
164