import numpy as np
from bitpolar_mcp import BitPolarToolServer, TOOL_DEFINITIONS
import json
print("=== BitPolar MCP Tool Server ===\n")
print("Available MCP tools:")
for tool in TOOL_DEFINITIONS:
print(f" {tool['name']}: {tool['description'][:80]}...")
server = BitPolarToolServer(dim=128, bits=4, seed=42)
print("\n--- Agent adds vectors ---")
for i in range(100):
result = server.handle_tool_call("bitpolar_add_vector", {
"id": i,
"vector": np.random.randn(128).astype(np.float32).tolist(),
})
print(f"Added 100 vectors: {result}")
print("\n--- Agent checks stats ---")
stats = server.handle_tool_call("bitpolar_index_stats", {})
print(json.dumps(stats, indent=2))
print("\n--- Agent searches ---")
query = np.random.randn(128).astype(np.float32).tolist()
results = server.handle_tool_call("bitpolar_search", {
"query": query,
"top_k": 5,
})
print(f"Search results: {json.dumps(results['results'], indent=2)}")
print("\n--- Agent compresses a vector ---")
compress_result = server.handle_tool_call("bitpolar_compress", {
"vector": np.random.randn(128).astype(np.float32).tolist(),
"bits": 3, })
print(f"Compressed: {compress_result['original_bytes']}B → {compress_result['compressed_bytes']}B "
f"({compress_result['compression_ratio']}x)")