geronimo-pericoli commited on
Commit
2aff208
verified
1 Parent(s): 1f2e9c8

Update server.py

Browse files
Files changed (1) hide show
  1. server.py +36 -18
server.py CHANGED
@@ -93,13 +93,17 @@ mcp = FastMCP("OnBase", port=port)
93
  @mcp.resource(
94
  uri="info://available_retrievers",
95
  name="AvailableRetrievers",
96
- description="Lista de retrievers con metadatos",
97
  mime_type="application/json"
98
  )
99
- async def _get_available_retrievers() -> dict: # Ahora es async
 
 
 
 
100
  try:
101
  available = []
102
- print("Metadata keys:", retrievers_metadata.keys())
103
 
104
  for source, indexes in retrievers_metadata.items():
105
  for index_name, metadata in indexes.items():
@@ -110,21 +114,26 @@ async def _get_available_retrievers() -> dict: # Ahora es async
110
  "description": metadata.get("description", "")
111
  })
112
 
113
- print("Retrievers disponibles:", available)
 
114
  return {
115
  "retrievers": available,
116
  "count": len(available),
117
  "status": "success"
118
  }
 
119
  except Exception as e:
120
- print(f"Error generating retrievers: {str(e)}")
121
  return {
122
  "retrievers": [],
123
  "count": 0,
124
  "status": "error",
125
- "error": str(e)
126
  }
127
 
 
 
 
128
  @mcp.tool()
129
  async def list_retrievers(ctx: Context) -> dict:
130
  """
@@ -143,22 +152,31 @@ async def list_retrievers(ctx: Context) -> dict:
143
  "error": str (opcional)
144
  }
145
  """
146
-
147
- # Lectura del resource
148
- resource_contents = await ctx.read_resource("info://available_retrievers")
149
-
150
- print(str(resource_contents))
151
 
152
- resource = resource_contents[0].content # Acceder al contenido real
 
 
 
 
 
 
 
 
 
153
 
154
- return {
155
- "retrievers": resource.get("retrievers", []),
156
- "count": resource.get("count", 0),
157
- "status": "success"
158
- }
 
 
159
 
160
  except Exception as e:
161
- print(f"Error en list_retrievers: {str(e)}")
162
  return {
163
  "retrievers": [],
164
  "count": 0,
 
93
  @mcp.resource(
94
  uri="info://available_retrievers",
95
  name="AvailableRetrievers",
96
+ description="Lista de retrievers disponibles con sus metadatos (nombre, t铆tulo, descripci贸n y fuente)",
97
  mime_type="application/json"
98
  )
99
+ async def _get_available_retrievers(ctx: Context) -> dict:
100
+ """
101
+ Genera y devuelve una lista de todos los retrievers disponibles en el sistema,
102
+ incluyendo sus metadatos asociados.
103
+ """
104
  try:
105
  available = []
106
+ await ctx.debug(f"Iniciando generaci贸n de lista de retrievers. Fuentes disponibles: {list(retrievers_metadata.keys())}")
107
 
108
  for source, indexes in retrievers_metadata.items():
109
  for index_name, metadata in indexes.items():
 
114
  "description": metadata.get("description", "")
115
  })
116
 
117
+ await ctx.info(f"Generada lista de {len(available)} retrievers disponibles")
118
+
119
  return {
120
  "retrievers": available,
121
  "count": len(available),
122
  "status": "success"
123
  }
124
+
125
  except Exception as e:
126
+ await ctx.error(f"Error generando lista de retrievers: {str(e)}", exc_info=True)
127
  return {
128
  "retrievers": [],
129
  "count": 0,
130
  "status": "error",
131
+ "error": f"No se pudo obtener la lista de retrievers: {str(e)}"
132
  }
133
 
134
+
135
+
136
+
137
  @mcp.tool()
138
  async def list_retrievers(ctx: Context) -> dict:
139
  """
 
152
  "error": str (opcional)
153
  }
154
  """
155
+ try:
156
+ # Lectura del resource
157
+ resource_contents = await ctx.read_resource("info://available_retrievers")
 
 
158
 
159
+ if not resource_contents:
160
+ await ctx.warning("No resource contents found for info://available_retrievers")
161
+ return {
162
+ "retrievers": [],
163
+ "count": 0,
164
+ "status": "error",
165
+ "error": "Resource not found"
166
+ }
167
+
168
+ resource = resource_contents[0].content # Acceder al contenido real
169
 
170
+ await ctx.debug(f"Retrieved {len(resource.get('retrievers', []))} retrievers")
171
+
172
+ return {
173
+ "retrievers": resource.get("retrievers", []),
174
+ "count": resource.get("count", 0),
175
+ "status": "success"
176
+ }
177
 
178
  except Exception as e:
179
+ await ctx.error(f"Error en list_retrievers: {str(e)}")
180
  return {
181
  "retrievers": [],
182
  "count": 0,