mcp-server-milvus 0.1.1.dev5__py3-none-any.whl → 0.1.1.dev7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mcp-server-milvus might be problematic. Click here for more details.

@@ -1,5 +1,4 @@
1
1
  import argparse
2
- import json
3
2
  import os
4
3
  from contextlib import asynccontextmanager
5
4
  from typing import Any, AsyncIterator, Optional
@@ -16,8 +15,9 @@ from pymilvus import (
16
15
  class MilvusConnector:
17
16
  def __init__(self, uri: str, token: Optional[str] = None, db_name: Optional[str] = "default"):
18
17
  self.uri = uri
19
- self.token = token
20
- self.client = MilvusClient(uri=uri, token=token, db_name=db_name)
18
+ self.token = token if token is not None else ""
19
+ self.db_name = db_name if db_name is not None else "default"
20
+ self.client = MilvusClient(uri=uri, token=self.token, db_name=self.db_name)
21
21
 
22
22
  @classmethod
23
23
  def from_env(cls) -> "MilvusConnector":
@@ -43,14 +43,14 @@ class MilvusConnector:
43
43
  try:
44
44
  return self.client.list_collections()
45
45
  except Exception as e:
46
- raise ValueError(f"Failed to list collections: {str(e)}")
46
+ raise ValueError(f"Failed to list collections: {str(e)}") from e
47
47
 
48
48
  async def get_collection_info(self, collection_name: str) -> dict:
49
49
  """Get detailed information about a collection."""
50
50
  try:
51
51
  return self.client.describe_collection(collection_name)
52
52
  except Exception as e:
53
- raise ValueError(f"Failed to get collection info: {str(e)}")
53
+ raise ValueError(f"Failed to get collection info: {str(e)}") from e
54
54
 
55
55
  async def search_collection(
56
56
  self,
@@ -83,7 +83,7 @@ class MilvusConnector:
83
83
  )
84
84
  return results
85
85
  except Exception as e:
86
- raise ValueError(f"Search failed: {str(e)}")
86
+ raise ValueError(f"Search failed: {str(e)}") from e
87
87
 
88
88
  async def query_collection(
89
89
  self,
@@ -101,7 +101,7 @@ class MilvusConnector:
101
101
  limit=limit,
102
102
  )
103
103
  except Exception as e:
104
- raise ValueError(f"Query failed: {str(e)}")
104
+ raise ValueError(f"Query failed: {str(e)}") from e
105
105
 
106
106
  async def vector_search(
107
107
  self,
@@ -135,11 +135,22 @@ class MilvusConnector:
135
135
  search_params=search_params,
136
136
  limit=limit,
137
137
  output_fields=output_fields,
138
- filter=filter_expr,
138
+ filter=filter_expr if filter_expr is not None else "",
139
139
  )
140
- return results
140
+ # Flatten results if nested
141
+ def flatten(lst):
142
+ flat = []
143
+ for item in lst:
144
+ if isinstance(item, list):
145
+ flat.extend(flatten(item))
146
+ else:
147
+ flat.append(item)
148
+ return flat
149
+ if isinstance(results, list):
150
+ return flatten(results)
151
+ return []
141
152
  except Exception as e:
142
- raise ValueError(f"Vector search failed: {str(e)}")
153
+ raise ValueError(f"Vector search failed: {str(e)}") from e
143
154
 
144
155
  async def hybrid_search(
145
156
  self,
@@ -189,13 +200,15 @@ class MilvusConnector:
189
200
  ranker=RRFRanker(60),
190
201
  limit=limit,
191
202
  output_fields=output_fields,
192
- filter=filter_expr,
203
+ filter=filter_expr if filter_expr is not None else "",
193
204
  )
194
-
195
- return results
205
+ # Flatten results if nested
206
+ if results and isinstance(results[0], list):
207
+ return [item for sublist in results for item in sublist]
208
+ return results if results else []
196
209
 
197
210
  except Exception as e:
198
- raise ValueError(f"Hybrid search failed: {str(e)}")
211
+ raise ValueError(f"Hybrid search failed: {str(e)}") from e
199
212
 
200
213
  async def create_collection(
201
214
  self,
@@ -239,7 +252,7 @@ class MilvusConnector:
239
252
 
240
253
  return True
241
254
  except Exception as e:
242
- raise ValueError(f"Failed to create collection: {str(e)}")
255
+ raise ValueError(f"Failed to create collection: {str(e)}") from e
243
256
 
244
257
  async def insert_data(self, collection_name: str, data: list[dict[str, Any]]) -> dict[str, Any]:
245
258
  """
@@ -253,7 +266,7 @@ class MilvusConnector:
253
266
  result = self.client.insert(collection_name=collection_name, data=data)
254
267
  return result
255
268
  except Exception as e:
256
- raise ValueError(f"Insert failed: {str(e)}")
269
+ raise ValueError(f"Insert failed: {str(e)}") from e
257
270
 
258
271
  async def delete_entities(self, collection_name: str, filter_expr: str) -> dict[str, Any]:
259
272
  """
@@ -267,7 +280,7 @@ class MilvusConnector:
267
280
  result = self.client.delete(collection_name=collection_name, expr=filter_expr)
268
281
  return result
269
282
  except Exception as e:
270
- raise ValueError(f"Delete failed: {str(e)}")
283
+ raise ValueError(f"Delete failed: {str(e)}") from e
271
284
 
272
285
  async def get_collection_stats(self, collection_name: str) -> dict[str, Any]:
273
286
  """
@@ -279,7 +292,7 @@ class MilvusConnector:
279
292
  try:
280
293
  return self.client.get_collection_stats(collection_name)
281
294
  except Exception as e:
282
- raise ValueError(f"Failed to get collection stats: {str(e)}")
295
+ raise ValueError(f"Failed to get collection stats: {str(e)}") from e
283
296
 
284
297
  async def multi_vector_search(
285
298
  self,
@@ -291,7 +304,7 @@ class MilvusConnector:
291
304
  metric_type: str = "COSINE",
292
305
  filter_expr: Optional[str] = None,
293
306
  search_params: Optional[dict[str, Any]] = None,
294
- ) -> list[list[dict]]:
307
+ ) -> list[dict]:
295
308
  """
296
309
  Perform vector similarity search with multiple query vectors.
297
310
 
@@ -316,11 +329,14 @@ class MilvusConnector:
316
329
  search_params=search_params,
317
330
  limit=limit,
318
331
  output_fields=output_fields,
319
- filter=filter_expr,
332
+ filter=filter_expr if filter_expr is not None else "",
320
333
  )
321
- return results
334
+ # Flatten results if nested
335
+ if results and isinstance(results[0], list):
336
+ return [item for sublist in results for item in sublist]
337
+ return results if results else []
322
338
  except Exception as e:
323
- raise ValueError(f"Multi-vector search failed: {str(e)}")
339
+ raise ValueError(f"Multi-vector search failed: {str(e)}") from e
324
340
 
325
341
  async def create_index(
326
342
  self,
@@ -357,7 +373,7 @@ class MilvusConnector:
357
373
  )
358
374
  return True
359
375
  except Exception as e:
360
- raise ValueError(f"Failed to create index: {str(e)}")
376
+ raise ValueError(f"Failed to create index: {str(e)}") from e
361
377
 
362
378
  async def bulk_insert(
363
379
  self, collection_name: str, data: dict[str, list[Any]], batch_size: int = 1000
@@ -383,7 +399,7 @@ class MilvusConnector:
383
399
 
384
400
  return results
385
401
  except Exception as e:
386
- raise ValueError(f"Bulk insert failed: {str(e)}")
402
+ raise ValueError(f"Bulk insert failed: {str(e)}") from e
387
403
 
388
404
  async def load_collection(self, collection_name: str, replica_number: int = 1) -> bool:
389
405
  """
@@ -399,7 +415,7 @@ class MilvusConnector:
399
415
  )
400
416
  return True
401
417
  except Exception as e:
402
- raise ValueError(f"Failed to load collection: {str(e)}")
418
+ raise ValueError(f"Failed to load collection: {str(e)}") from e
403
419
 
404
420
  async def release_collection(self, collection_name: str) -> bool:
405
421
  """
@@ -412,19 +428,9 @@ class MilvusConnector:
412
428
  self.client.release_collection(collection_name=collection_name)
413
429
  return True
414
430
  except Exception as e:
415
- raise ValueError(f"Failed to release collection: {str(e)}")
431
+ raise ValueError(f"Failed to release collection: {str(e)}") from e
416
432
 
417
- async def get_query_segment_info(self, collection_name: str) -> dict[str, Any]:
418
- """
419
- Get information about query segments.
420
-
421
- Args:
422
- collection_name: Name of collection
423
- """
424
- try:
425
- return self.client.get_query_segment_info(collection_name)
426
- except Exception as e:
427
- raise ValueError(f"Failed to get query segment info: {str(e)}")
433
+ # REMOVED: get_query_segment_info (unknown attribute on MilvusClient)
428
434
 
429
435
  async def upsert_data(self, collection_name: str, data: dict[str, list[Any]]) -> dict[str, Any]:
430
436
  """
@@ -438,7 +444,7 @@ class MilvusConnector:
438
444
  result = self.client.upsert(collection_name=collection_name, data=data)
439
445
  return result
440
446
  except Exception as e:
441
- raise ValueError(f"Upsert failed: {str(e)}")
447
+ raise ValueError(f"Upsert failed: {str(e)}") from e
442
448
 
443
449
  async def get_index_info(
444
450
  self, collection_name: str, field_name: Optional[str] = None
@@ -452,10 +458,10 @@ class MilvusConnector:
452
458
  """
453
459
  try:
454
460
  return self.client.describe_index(
455
- collection_name=collection_name, index_name=field_name
461
+ collection_name=collection_name, index_name=field_name if field_name is not None else ""
456
462
  )
457
463
  except Exception as e:
458
- raise ValueError(f"Failed to get index info: {str(e)}")
464
+ raise ValueError(f"Failed to get index info: {str(e)}") from e
459
465
 
460
466
  async def get_collection_loading_progress(self, collection_name: str) -> dict[str, Any]:
461
467
  """
@@ -467,14 +473,14 @@ class MilvusConnector:
467
473
  try:
468
474
  return self.client.get_load_state(collection_name)
469
475
  except Exception as e:
470
- raise ValueError(f"Failed to get loading progress: {str(e)}")
476
+ raise ValueError(f"Failed to get loading progress: {str(e)}") from e
471
477
 
472
478
  async def list_databases(self) -> list[str]:
473
479
  """List all databases in the Milvus instance."""
474
480
  try:
475
481
  return self.client.list_databases()
476
482
  except Exception as e:
477
- raise ValueError(f"Failed to list databases: {str(e)}")
483
+ raise ValueError(f"Failed to list databases: {str(e)}") from e
478
484
 
479
485
  async def use_database(self, db_name: str) -> bool:
480
486
  """Switch to a different database.
@@ -484,10 +490,10 @@ class MilvusConnector:
484
490
  """
485
491
  try:
486
492
  # Create a new client with the specified database
487
- self.client = MilvusClient(uri=self.uri, token=self.token, db_name=db_name)
493
+ self.client = MilvusClient(uri=self.uri, token=self.token if self.token is not None else "", db_name=db_name if db_name is not None else "default")
488
494
  return True
489
495
  except Exception as e:
490
- raise ValueError(f"Failed to switch database: {str(e)}")
496
+ raise ValueError(f"Failed to switch database: {str(e)}") from e
491
497
 
492
498
 
493
499
  class MilvusContext:
@@ -510,13 +516,13 @@ mcp = FastMCP(name="Milvus", lifespan=server_lifespan)
510
516
 
511
517
  @mcp.tool()
512
518
  async def milvus_text_search(
519
+ ctx: Context,
513
520
  collection_name: str,
514
521
  query_text: str,
515
522
  limit: int = 5,
516
523
  output_fields: Optional[list[str]] = None,
517
524
  drop_ratio: float = 0.2,
518
- ctx: Context = None,
519
- ) -> str:
525
+ ) -> dict:
520
526
  """
521
527
  Search for documents using full text search in a Milvus collection.
522
528
 
@@ -536,29 +542,34 @@ async def milvus_text_search(
536
542
  drop_ratio=drop_ratio,
537
543
  )
538
544
 
539
- output = f"Search results for '{query_text}' in collection '{collection_name}':\n\n"
540
- for result in results:
541
- output += f"{result}\n\n"
542
-
543
- return output
545
+ return {
546
+ "collection_name": collection_name,
547
+ "query_text": query_text,
548
+ "limit": limit,
549
+ "output_fields": output_fields,
550
+ "drop_ratio": drop_ratio,
551
+ "results": results,
552
+ }
544
553
 
545
554
 
546
555
  @mcp.tool()
547
- async def milvus_list_collections(ctx: Context) -> str:
556
+ async def milvus_list_collections(ctx: Context) -> dict:
548
557
  """List all collections in the database."""
549
558
  connector = ctx.request_context.lifespan_context.connector
550
559
  collections = await connector.list_collections()
551
- return f"Collections in database:\n{', '.join(collections)}"
560
+ return {
561
+ "collections": collections
562
+ }
552
563
 
553
564
 
554
565
  @mcp.tool()
555
566
  async def milvus_query(
567
+ ctx: Context,
556
568
  collection_name: str,
557
569
  filter_expr: str,
558
570
  output_fields: Optional[list[str]] = None,
559
571
  limit: int = 10,
560
- ctx: Context = None,
561
- ) -> str:
572
+ ) -> dict:
562
573
  """
563
574
  Query collection using filter expressions.
564
575
 
@@ -576,15 +587,18 @@ async def milvus_query(
576
587
  limit=limit,
577
588
  )
578
589
 
579
- output = f"Query results for '{filter_expr}' in collection '{collection_name}':\n\n"
580
- for result in results:
581
- output += f"{result}\n\n"
582
-
583
- return output
590
+ return {
591
+ "collection_name": collection_name,
592
+ "filter_expr": filter_expr,
593
+ "output_fields": output_fields,
594
+ "limit": limit,
595
+ "results": results,
596
+ }
584
597
 
585
598
 
586
599
  @mcp.tool()
587
600
  async def milvus_vector_search(
601
+ ctx: Context,
588
602
  collection_name: str,
589
603
  vector: list[float],
590
604
  vector_field: str = "vector",
@@ -592,8 +606,7 @@ async def milvus_vector_search(
592
606
  output_fields: Optional[list[str]] = None,
593
607
  metric_type: str = "COSINE",
594
608
  filter_expr: Optional[str] = None,
595
- ctx: Context = None,
596
- ) -> str:
609
+ ) -> dict:
597
610
  """
598
611
  Perform vector similarity search on a collection.
599
612
 
@@ -617,15 +630,21 @@ async def milvus_vector_search(
617
630
  filter_expr=filter_expr,
618
631
  )
619
632
 
620
- output = f"Vector search results for '{collection_name}':\n\n"
621
- for result in results:
622
- output += f"{result}\n\n"
623
-
624
- return output
633
+ return {
634
+ "collection_name": collection_name,
635
+ "vector": vector,
636
+ "vector_field": vector_field,
637
+ "limit": limit,
638
+ "output_fields": output_fields,
639
+ "metric_type": metric_type,
640
+ "filter_expr": filter_expr,
641
+ "results": results,
642
+ }
625
643
 
626
644
 
627
645
  @mcp.tool()
628
646
  async def milvus_hybrid_search(
647
+ ctx: Context,
629
648
  collection_name: str,
630
649
  query_text: str,
631
650
  text_field: str,
@@ -634,8 +653,7 @@ async def milvus_hybrid_search(
634
653
  limit: int = 5,
635
654
  output_fields: Optional[list[str]] = None,
636
655
  filter_expr: Optional[str] = None,
637
- ctx: Context = None,
638
- ) -> str:
656
+ ) -> dict:
639
657
  """
640
658
  Perform hybrid search combining text and vector search.
641
659
 
@@ -662,20 +680,26 @@ async def milvus_hybrid_search(
662
680
  filter_expr=filter_expr,
663
681
  )
664
682
 
665
- output = f"Hybrid search results for text '{query_text}' in '{collection_name}':\n\n"
666
- for result in results:
667
- output += f"{result}\n\n"
668
-
669
- return output
683
+ return {
684
+ "collection_name": collection_name,
685
+ "query_text": query_text,
686
+ "text_field": text_field,
687
+ "vector": vector,
688
+ "vector_field": vector_field,
689
+ "limit": limit,
690
+ "output_fields": output_fields,
691
+ "filter_expr": filter_expr,
692
+ "results": results,
693
+ }
670
694
 
671
695
 
672
696
  @mcp.tool()
673
697
  async def milvus_create_collection(
698
+ ctx: Context,
674
699
  collection_name: str,
675
700
  collection_schema: dict[str, Any],
676
701
  index_params: Optional[dict[str, Any]] = None,
677
- ctx: Context = None,
678
- ) -> str:
702
+ ) -> dict:
679
703
  """
680
704
  Create a new collection with specified schema.
681
705
 
@@ -691,13 +715,17 @@ async def milvus_create_collection(
691
715
  index_params=index_params,
692
716
  )
693
717
 
694
- return f"Collection '{collection_name}' created successfully"
718
+ return {
719
+ "collection_name": collection_name,
720
+ "success": success,
721
+ "message": f"Collection '{collection_name}' created successfully" if success else f"Failed to create collection '{collection_name}'"
722
+ }
695
723
 
696
724
 
697
725
  @mcp.tool()
698
726
  async def milvus_insert_data(
699
- collection_name: str, data: list[dict[str, Any]], ctx: Context = None
700
- ) -> str:
727
+ ctx: Context, collection_name: str, data: list[dict[str, Any]]
728
+ ) -> dict:
701
729
  """
702
730
  Insert data into a collection.
703
731
 
@@ -708,13 +736,17 @@ async def milvus_insert_data(
708
736
  connector = ctx.request_context.lifespan_context.connector
709
737
  result = await connector.insert_data(collection_name=collection_name, data=data)
710
738
 
711
- return f"Data inserted into collection '{collection_name}' with result: {str(result)}"
739
+ return {
740
+ "collection_name": collection_name,
741
+ "result": result,
742
+ "message": f"Data inserted into collection '{collection_name}'"
743
+ }
712
744
 
713
745
 
714
746
  @mcp.tool()
715
747
  async def milvus_delete_entities(
716
- collection_name: str, filter_expr: str, ctx: Context = None
717
- ) -> str:
748
+ ctx: Context, collection_name: str, filter_expr: str
749
+ ) -> dict:
718
750
  """
719
751
  Delete entities from a collection based on filter expression.
720
752
 
@@ -727,13 +759,18 @@ async def milvus_delete_entities(
727
759
  collection_name=collection_name, filter_expr=filter_expr
728
760
  )
729
761
 
730
- return f"Entities deleted from collection '{collection_name}' with result: {str(result)}"
762
+ return {
763
+ "collection_name": collection_name,
764
+ "filter_expr": filter_expr,
765
+ "result": result,
766
+ "message": f"Entities deleted from collection '{collection_name}'"
767
+ }
731
768
 
732
769
 
733
770
  @mcp.tool()
734
771
  async def milvus_load_collection(
735
- collection_name: str, replica_number: int = 1, ctx: Context = None
736
- ) -> str:
772
+ ctx: Context, collection_name: str, replica_number: int = 1
773
+ ) -> dict:
737
774
  """
738
775
  Load a collection into memory for search and query.
739
776
 
@@ -746,11 +783,16 @@ async def milvus_load_collection(
746
783
  collection_name=collection_name, replica_number=replica_number
747
784
  )
748
785
 
749
- return f"Collection '{collection_name}' loaded successfully with {replica_number} replica(s)"
786
+ return {
787
+ "collection_name": collection_name,
788
+ "replica_number": replica_number,
789
+ "success": success,
790
+ "message": f"Collection '{collection_name}' loaded successfully with {replica_number} replica(s)" if success else f"Failed to load collection '{collection_name}'"
791
+ }
750
792
 
751
793
 
752
794
  @mcp.tool()
753
- async def milvus_release_collection(collection_name: str, ctx: Context = None) -> str:
795
+ async def milvus_release_collection(ctx: Context, collection_name: str) -> dict:
754
796
  """
755
797
  Release a collection from memory.
756
798
 
@@ -760,19 +802,25 @@ async def milvus_release_collection(collection_name: str, ctx: Context = None) -
760
802
  connector = ctx.request_context.lifespan_context.connector
761
803
  success = await connector.release_collection(collection_name=collection_name)
762
804
 
763
- return f"Collection '{collection_name}' released successfully"
805
+ return {
806
+ "collection_name": collection_name,
807
+ "success": success,
808
+ "message": f"Collection '{collection_name}' released successfully" if success else f"Failed to release collection '{collection_name}'"
809
+ }
764
810
 
765
811
 
766
812
  @mcp.tool()
767
- async def milvus_list_databases(ctx: Context = None) -> str:
813
+ async def milvus_list_databases(ctx: Context) -> dict:
768
814
  """List all databases in the Milvus instance."""
769
815
  connector = ctx.request_context.lifespan_context.connector
770
816
  databases = await connector.list_databases()
771
- return f"Databases in Milvus instance:\n{', '.join(databases)}"
817
+ return {
818
+ "databases": databases
819
+ }
772
820
 
773
821
 
774
822
  @mcp.tool()
775
- async def milvus_use_database(db_name: str, ctx: Context = None) -> str:
823
+ async def milvus_use_database(ctx: Context, db_name: str) -> dict:
776
824
  """
777
825
  Switch to a different database.
778
826
 
@@ -782,11 +830,15 @@ async def milvus_use_database(db_name: str, ctx: Context = None) -> str:
782
830
  connector = ctx.request_context.lifespan_context.connector
783
831
  success = await connector.use_database(db_name)
784
832
 
785
- return f"Switched to database '{db_name}' successfully"
833
+ return {
834
+ "db_name": db_name,
835
+ "success": success,
836
+ "message": f"Switched to database '{db_name}' successfully" if success else f"Failed to switch to database '{db_name}'"
837
+ }
786
838
 
787
839
 
788
840
  @mcp.tool()
789
- async def milvus_get_collection_info(collection_name: str, ctx: Context = None) -> str:
841
+ async def milvus_get_collection_info(ctx: Context, collection_name: str) -> dict:
790
842
  """
791
843
  Lists detailed information about a specific collection
792
844
 
@@ -795,8 +847,10 @@ async def milvus_get_collection_info(collection_name: str, ctx: Context = None)
795
847
  """
796
848
  connector = ctx.request_context.lifespan_context.connector
797
849
  collection_info = await connector.get_collection_info(collection_name)
798
- info_str = json.dumps(collection_info, indent=2)
799
- return f"Collection information:\n{info_str}"
850
+ return {
851
+ "collection_name": collection_name,
852
+ "info": collection_info
853
+ }
800
854
 
801
855
  def parse_arguments():
802
856
  """Parse command line arguments with environment variable fallbacks.
@@ -809,7 +863,6 @@ def parse_arguments():
809
863
  parser.add_argument("--milvus-token", type=str, default=os.environ.get("MILVUS_TOKEN"), help="Milvus authentication token")
810
864
  parser.add_argument("--milvus-db", type=str, default=os.environ.get("MILVUS_DB", "default"), help="Milvus database name")
811
865
  parser.add_argument("--sse", action="store_true", help="Enable SSE mode")
812
- parser.add_argument("--port", type=int, default=8000, help="Port number for SSE server")
813
866
  return parser.parse_args()
814
867
 
815
868
 
@@ -830,7 +883,7 @@ def main():
830
883
  setup_environment(args)
831
884
 
832
885
  if args.sse:
833
- mcp.run(transport="sse", port=args.port, host="0.0.0.0")
886
+ mcp.run(transport="sse")
834
887
  else:
835
888
  mcp.run()
836
889
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: mcp-server-milvus
3
- Version: 0.1.1.dev5
3
+ Version: 0.1.1.dev7
4
4
  Summary: MCP server for Milvus
5
5
  Author: D. Danchev
6
6
  Author-email: D. Danchev <12420863+danchev@users.noreply.github.com>
@@ -103,11 +103,10 @@ The server supports two running modes: **stdio** (default) and **SSE** (Server-S
103
103
  - **Usage:**
104
104
 
105
105
  ```bash
106
- uv run mcp-server-milvus --sse --milvus-uri http://localhost:19530 --port 8000
106
+ uv run mcp-server-milvus --sse --milvus-uri http://localhost:19530
107
107
  ```
108
108
 
109
109
  - `--sse`: Enables SSE mode.
110
- - `--port`: Specifies the port for the SSE server (default: 8000).
111
110
 
112
111
  - **Debugging in SSE Mode:**
113
112
 
@@ -1520,8 +1520,8 @@ mcp_server_milvus/.ruff_cache/CACHEDIR.TAG,sha256=WVMVbX4MVkpCclExbq8m-IcOZIOuIZ
1520
1520
  mcp_server_milvus/__init__.py,sha256=D3SNAB4nLWzf8mT79140AZCORuNGivn_qsaczlqfhqQ,182
1521
1521
  mcp_server_milvus/blogpost.md,sha256=GwGlzSnWyotasaYjd_fxQ4dP_n9pMSitvVikNTqOmVc,1600
1522
1522
  mcp_server_milvus/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1523
- mcp_server_milvus/server.py,sha256=5ARiWUqGF6L5G0B3P3dKpepxvcPIKGla_IkGJFjPIu8,27873
1524
- mcp_server_milvus-0.1.1.dev5.dist-info/WHEEL,sha256=Pi5uDq5Fdo_Rr-HD5h9BiPn9Et29Y9Sh8NhcJNnFU1c,79
1525
- mcp_server_milvus-0.1.1.dev5.dist-info/entry_points.txt,sha256=zBWlHVxTww6CTumm7kNnkm3_mwCj0Af5BCPgUo1AeDY,69
1526
- mcp_server_milvus-0.1.1.dev5.dist-info/METADATA,sha256=SnJEo37FKK-oC4WoNv43w9Iqn_1TD7qqXiHNBN4cWjg,14722
1527
- mcp_server_milvus-0.1.1.dev5.dist-info/RECORD,,
1523
+ mcp_server_milvus/server.py,sha256=hh8RhnBjOqJSu5X_wZ-XewSvoTUjezGG3esMr0oJTpE,29755
1524
+ mcp_server_milvus-0.1.1.dev7.dist-info/WHEEL,sha256=Pi5uDq5Fdo_Rr-HD5h9BiPn9Et29Y9Sh8NhcJNnFU1c,79
1525
+ mcp_server_milvus-0.1.1.dev7.dist-info/entry_points.txt,sha256=zBWlHVxTww6CTumm7kNnkm3_mwCj0Af5BCPgUo1AeDY,69
1526
+ mcp_server_milvus-0.1.1.dev7.dist-info/METADATA,sha256=DrPiT2khD6TfUkoeje3-6ZsCeSHfn6bjVrXcZIS3FRA,14641
1527
+ mcp_server_milvus-0.1.1.dev7.dist-info/RECORD,,