geronimo-pericoli commited on
Commit
08b169e
verified
1 Parent(s): 1a2fd7f

Update server.py

Browse files
Files changed (1) hide show
  1. server.py +67 -18
server.py CHANGED
@@ -89,7 +89,6 @@ mcp = FastMCP("OnBase", port=port)
89
 
90
 
91
 
92
- # Resource para listar retrievers
93
  @mcp.resource(
94
  uri="info://available_retrievers",
95
  name="AvailableRetrievers",
@@ -97,20 +96,31 @@ mcp = FastMCP("OnBase", port=port)
97
  mime_type="application/json"
98
  )
99
  def _get_available_retrievers_internal() -> dict:
 
100
  available = []
101
 
 
 
 
102
  for source, indexes in retrievers_metadata.items():
 
103
  for index_name, metadata in indexes.items():
 
104
  available.append({
105
  "name": index_name,
106
  "source": source,
107
- "title": metadata.get("title", ""),
108
- "description": metadata.get("description", ""),
109
- "last_updated": metadata.get("last_updated", "")
110
  })
111
-
112
- print(available)
113
- return {"retrievers": available, "count": len(available)}
 
 
 
 
 
114
 
115
 
116
 
@@ -118,24 +128,63 @@ def _get_available_retrievers_internal() -> dict:
118
  @mcp.tool()
119
  async def list_retrievers(ctx: Context) -> dict:
120
  """
121
- Devuelve la lista de retrievers disponibles incluyendo nombre, t铆tulo y descripci贸n.
122
 
123
  Returns:
124
  dict: {
125
  "retrievers": [{
126
- "name": "vec_who_1",
127
- "title": "WHO Technical Report.pdf",
128
- "description": "..."
 
129
  }],
130
- "count": int
 
 
131
  }
132
  """
133
- # Accede al resource internamente
134
- resource = await ctx.read_resource("info://available_retrievers")
135
- return {
136
- "retrievers": resource["retrievers"],
137
- "count": resource["count"]
138
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
 
140
 
141
 
 
89
 
90
 
91
 
 
92
  @mcp.resource(
93
  uri="info://available_retrievers",
94
  name="AvailableRetrievers",
 
96
  mime_type="application/json"
97
  )
98
  def _get_available_retrievers_internal() -> dict:
99
+ print("\n[DEBUG] Generando recursos disponibles...")
100
  available = []
101
 
102
+ # Verificaci贸n de datos de entrada
103
+ print(f"Metadata cargada: {retrievers_metadata.keys()}")
104
+
105
  for source, indexes in retrievers_metadata.items():
106
+ print(f"\nProcesando fuente: {source}")
107
  for index_name, metadata in indexes.items():
108
+ print(f" Procesando 铆ndice: {index_name}")
109
  available.append({
110
  "name": index_name,
111
  "source": source,
112
+ "title": metadata.get("title", "Sin t铆tulo"),
113
+ "description": metadata.get("description", "Sin descripci贸n"),
114
+ "last_updated": metadata.get("last_updated", "Desconocido")
115
  })
116
+
117
+ print("\n[DEBUG] Resultado final:", available)
118
+ return {
119
+ "retrievers": available,
120
+ "count": len(available),
121
+ "status": "success",
122
+ "timestamp": datetime.datetime.now().isoformat()
123
+ }
124
 
125
 
126
 
 
128
  @mcp.tool()
129
  async def list_retrievers(ctx: Context) -> dict:
130
  """
131
+ Devuelve la lista de retrievers disponibles
132
 
133
  Returns:
134
  dict: {
135
  "retrievers": [{
136
+ "name": str,
137
+ "title": str,
138
+ "description": str,
139
+ "source": str
140
  }],
141
+ "count": int,
142
+ "status": str,
143
+ "error": str (opcional)
144
  }
145
  """
146
+ try:
147
+ print("\n[DEBUG] Iniciando list_retrievers...")
148
+
149
+ # Verificar si el resource est谩 registrado
150
+ resources = mcp.list_resources()
151
+ print("Resources registrados:", resources)
152
+
153
+ if "info://available_retrievers" not in resources:
154
+ return {
155
+ "retrievers": [],
156
+ "count": 0,
157
+ "status": "error",
158
+ "error": "Resource no registrado"
159
+ }
160
+
161
+ # Leer el resource
162
+ print("Leyendo resource...")
163
+ resource = await ctx.read_resource("info://available_retrievers")
164
+ print("Resource obtenido:", resource)
165
+
166
+ if not resource or "retrievers" not in resource:
167
+ return {
168
+ "retrievers": [],
169
+ "count": 0,
170
+ "status": "error",
171
+ "error": "Formato de resource inv谩lido"
172
+ }
173
+
174
+ return {
175
+ "retrievers": resource["retrievers"],
176
+ "count": resource["count"],
177
+ "status": "success"
178
+ }
179
+
180
+ except Exception as e:
181
+ print(f"[ERROR] en list_retrievers: {str(e)}")
182
+ return {
183
+ "retrievers": [],
184
+ "count": 0,
185
+ "status": "error",
186
+ "error": str(e)
187
+ }
188
 
189
 
190