We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/K-Dense-AI/claude-skills-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
"""Timing tests to verify Cursor timeout requirements are met."""
import subprocess
import time
import pytest
def test_frontend_cold_start_under_cursor_timeout():
"""CRITICAL: Frontend must start under Cursor's ~60s timeout."""
# Clear cache to simulate first-time user
subprocess.run(["uv", "cache", "clean", "claude-skills-mcp"], capture_output=True)
print("\nTesting frontend cold start (cache cleared)...")
start_time = time.time()
result = subprocess.run(
["uvx", "claude-skills-mcp", "--help"],
capture_output=True,
text=True,
timeout=60, # Cursor's timeout
)
elapsed = time.time() - start_time
print(f"Frontend startup time: {elapsed:.2f}s")
print("Cursor timeout limit: 60s")
print(f"Margin: {60 - elapsed:.2f}s")
assert result.returncode == 0, f"Frontend failed: {result.stderr}"
assert elapsed < 60, (
f"Frontend startup ({elapsed:.2f}s) exceeds Cursor timeout (60s)"
)
assert elapsed < 10, (
f"Frontend startup ({elapsed:.2f}s) should be < 10s for good UX"
)
print(f"✅ PASS: Frontend starts in {elapsed:.2f}s (well under 60s limit)")
def test_frontend_warm_start_very_fast():
"""Frontend warm start should be very fast (<5s)."""
# Run once to ensure cached
subprocess.run(
["uvx", "claude-skills-mcp", "--help"], capture_output=True, timeout=30
)
# Now test warm start
print("\nTesting frontend warm start (cached)...")
start_time = time.time()
result = subprocess.run(
["uvx", "claude-skills-mcp", "--help"],
capture_output=True,
text=True,
timeout=10,
)
elapsed = time.time() - start_time
print(f"Frontend warm startup time: {elapsed:.2f}s")
assert result.returncode == 0
assert elapsed < 5, f"Frontend warm start ({elapsed:.2f}s) should be < 5s"
print(f"✅ PASS: Frontend warm start is {elapsed:.2f}s")
def test_backend_cold_start_time():
"""Measure backend download time (happens in background, doesn't block Cursor)."""
# Clear backend cache
subprocess.run(
["uv", "cache", "clean", "claude-skills-mcp-backend"], capture_output=True
)
print("\nTesting backend cold start (cache cleared)...")
print("Note: This happens in BACKGROUND, doesn't block Cursor startup")
start_time = time.time()
result = subprocess.run(
["uvx", "claude-skills-mcp-backend", "--help"],
capture_output=True,
text=True,
timeout=180, # Give plenty of time for download
)
elapsed = time.time() - start_time
print(f"Backend download + start time: {elapsed:.2f}s")
assert result.returncode == 0, f"Backend failed: {result.stderr}"
# Backend can be slow - it downloads in background
print(
f"✅ Backend downloads in {elapsed:.2f}s (in background, doesn't affect Cursor)"
)
def test_backend_warm_start():
"""Backend warm start should be faster."""
# Ensure cached
subprocess.run(
["uvx", "claude-skills-mcp-backend", "--help"], capture_output=True, timeout=60
)
print("\nTesting backend warm start (cached)...")
start_time = time.time()
result = subprocess.run(
["uvx", "claude-skills-mcp-backend", "--help"],
capture_output=True,
text=True,
timeout=30,
)
elapsed = time.time() - start_time
print(f"Backend warm startup time: {elapsed:.2f}s")
assert result.returncode == 0
assert elapsed < 20, f"Backend warm start ({elapsed:.2f}s) should be reasonable"
print(f"✅ PASS: Backend warm start is {elapsed:.2f}s")
def test_package_sizes():
"""Verify package sizes are as expected."""
from pathlib import Path
# Find project root relative to this test file
test_dir = Path(__file__).parent
project_root = test_dir.parent.parent
# Check frontend wheel size
frontend_wheel = project_root / "packages/frontend/dist/claude_skills_mcp-1.0.5-py3-none-any.whl"
if frontend_wheel.exists():
size_kb = frontend_wheel.stat().st_size / 1024
print(f"\nFrontend wheel size: {size_kb:.1f} KB")
assert size_kb < 50, f"Frontend wheel ({size_kb:.1f} KB) should be < 50 KB"
print(f"✅ Frontend is lightweight: {size_kb:.1f} KB")
# Check backend wheel size
backend_wheel = project_root / "packages/backend/dist/claude_skills_mcp_backend-1.0.6-py3-none-any.whl"
if backend_wheel.exists():
size_kb = backend_wheel.stat().st_size / 1024
print(
f"Backend wheel size: {size_kb:.1f} KB (source only, dependencies separate)"
)
assert size_kb < 100, f"Backend wheel ({size_kb:.1f} KB) should be < 100 KB"
print(f"✅ Backend source is {size_kb:.1f} KB")
if __name__ == "__main__":
pytest.main([__file__, "-v", "-s"])