diff --git a/mcp-registry/servers/gpaw-computation.json b/mcp-registry/servers/gpaw-computation.json new file mode 100644 index 0000000..29ab518 --- /dev/null +++ b/mcp-registry/servers/gpaw-computation.json @@ -0,0 +1,49 @@ +{ + "name": "gpaw-computation", + "display_name": "GPAW Computation Server", + "description": "MCP server for running GPAW (Grid-based Projector Augmented Wave) computational calculations for materials science and quantum mechanics simulations.", + "repository": { + "type": "git", + "url": "https://github.com/pathintegral-institute/mcp.science" + }, + "homepage": "https://github.com/pathintegral-institute/mcp.science/tree/main/servers/gpaw-computation", + "author": { + "name": "Path Integral Institute", + "email": "info@pathintegral.xyz" + }, + "license": "MIT", + "categories": ["AI Systems"], + "tags": [ + "quantum", + "computation" + ], + "arguments": {}, + "installations": { + "python": { + "type": "python", + "command": "uvx", + "args": ["mcp-science", "gpaw-computation"], + "env": {}, + "description": "Install from GitHub using uvx", + "recommended": true + } + }, + "examples": [ + { + "title": "Run GPAW calculation", + "description": "Perform quantum mechanics calculations on materials structures", + "prompt": "Run a GPAW DFT calculation on a silicon crystal structure" + }, + { + "title": "Electronic structure analysis", + "description": "Analyze electronic properties of materials using GPAW", + "prompt": "Calculate the band structure and density of states for graphene" + }, + { + "title": "Materials optimization", + "description": "Optimize atomic structures using GPAW calculations", + "prompt": "Optimize the geometry of a perovskite structure using GPAW" + } + ], + "is_official": true +} diff --git a/mcp-registry/servers/nemad.json b/mcp-registry/servers/nemad.json new file mode 100644 index 0000000..14f7b18 --- /dev/null +++ b/mcp-registry/servers/nemad.json @@ -0,0 +1,70 @@ +{ + "name": "nemad", + "display_name": "NEMAD Materials Database", + "description": "MCP server for accessing the North East Materials Database (NEMAD) API to search materials by elements and chemical formulas in magnetic, thermoelectric, and superconductor databases.", + "repository": { + "type": "git", + "url": "https://github.com/pathintegral-institute/mcp.science" + }, + "homepage": "https://github.com/pathintegral-institute/mcp.science/tree/main/servers/nemad", + "author": { + "name": "Path Integral Institute" + }, + "license": "MIT", + "categories": ["Knowledge Base"], + "tags": [ + "materials", + "database" + ], + "arguments": { + "NEMAD_API_KEY": { + "description": "API key for accessing NEMAD database from nemad.org", + "required": true, + "example": "your-nemad-api-key" + } + }, + "tools": [ + { + "name": "nemad_search", + "description": "Search materials by elements in magnetic, thermoelectric, and superconductor databases" + }, + { + "name": "nemad_formula_search", + "description": "Search materials by exact chemical formula" + }, + { + "name": "nemad_read_results", + "description": "Read specific ranges of search results from previous queries" + } + ], + "installations": { + "python": { + "type": "python", + "command": "uvx", + "args": ["mcp-science", "nemad"], + "env": { + "NEMAD_API_KEY": "${NEMAD_API_KEY}" + }, + "description": "Install from GitHub using uvx", + "recommended": true + } + }, + "examples": [ + { + "title": "Search magnetic materials by elements", + "description": "Find magnetic materials containing iron and oxygen", + "prompt": "Search for magnetic materials containing iron and oxygen" + }, + { + "title": "Search by chemical formula", + "description": "Find materials with exact chemical formula", + "prompt": "Find materials with chemical formula Fe2O3" + }, + { + "title": "Search thermoelectric materials", + "description": "Find thermoelectric materials with specific elements", + "prompt": "Search thermoelectric materials containing bismuth and tellurium" + } + ], + "is_official": true +} diff --git a/mcp-registry/servers/netket.json b/mcp-registry/servers/netket.json new file mode 100644 index 0000000..e17fa06 --- /dev/null +++ b/mcp-registry/servers/netket.json @@ -0,0 +1,51 @@ +{ + "name": "netket", + "display_name": "NetKet Quantum Physics", + "description": "MCP server for NetKet quantum many-body physics analysis. Create, analyze, and visualize quantum systems using natural language interfaces. Supports multiple lattice geometries and Hamiltonian models.", + "repository": { + "type": "git", + "url": "https://github.com/pathintegral-institute/mcp.science" + }, + "homepage": "https://github.com/pathintegral-institute/mcp.science/tree/main/servers/netket", + "author": { + "name": "Path Integral Institute" + }, + "license": "MIT", + "categories": ["AI Systems"], + "tags": [ + "quantum", + "physics" + ], + "installations": { + "python": { + "type": "python", + "command": "uvx", + "args": ["mcp-science", "netket"], + "description": "Install from GitHub using uvx", + "recommended": true + } + }, + "examples": [ + { + "title": "SSH Model Analysis", + "description": "Analyze the SSH model for a chain with specific parameters", + "prompt": "Analyze the SSH model for a 24-site chain with t1=1.0 and t2=0.2" + }, + { + "title": "Heisenberg Model", + "description": "Study the Heisenberg model on a 2D lattice", + "prompt": "Create and analyze a 2D Heisenberg model on a 4x4 square lattice" + }, + { + "title": "Energy Spectrum Calculation", + "description": "Calculate and visualize energy spectra of quantum systems", + "prompt": "Calculate the energy spectrum of a 1D Hubbard model with 10 sites" + }, + { + "title": "Ground State Properties", + "description": "Analyze ground state properties of quantum systems", + "prompt": "Find the ground state properties of a spin-1/2 Heisenberg chain with 12 sites" + } + ], + "is_official": true +} diff --git a/mcp-registry/servers/timer.json b/mcp-registry/servers/timer.json new file mode 100644 index 0000000..4104afb --- /dev/null +++ b/mcp-registry/servers/timer.json @@ -0,0 +1,66 @@ +{ + "name": "timer", + "display_name": "Timer MCP Server", + "description": "A minimal MCP server that functions as a countdown timer with progress notifications. Demonstrates streaming incremental updates for long-running tasks.", + "repository": { + "type": "git", + "url": "https://github.com/pathintegral-institute/mcp.science" + }, + "homepage": "https://github.com/pathintegral-institute/mcp.science/tree/main/servers/timer", + "author": { + "name": "Path Integral Institute" + }, + "license": "MIT", + "categories": ["Dev Tools"], + "tags": [ + "timer", + "streaming" + ], + "tools": [ + { + "name": "wait", + "description": "Wait for a specified time with progress notifications", + "inputSchema": { + "type": "object", + "properties": { + "time_to_wait": { + "type": "integer", + "description": "Total duration to wait in milliseconds" + }, + "notif_interval": { + "type": "integer", + "description": "Interval between progress updates in milliseconds" + } + }, + "required": ["time_to_wait", "notif_interval"] + } + } + ], + "installations": { + "python": { + "type": "python", + "command": "uvx", + "args": ["mcp-science", "timer"], + "description": "Install from GitHub using uvx", + "recommended": true + } + }, + "examples": [ + { + "title": "Basic countdown timer", + "description": "Wait for 5 seconds with updates every second", + "prompt": "Wait for 5 seconds and notify me every second" + }, + { + "title": "Long timer with frequent updates", + "description": "Demonstrate streaming updates with a longer wait", + "prompt": "Set a 30-second timer with updates every 2 seconds" + }, + { + "title": "Short timer for testing", + "description": "Quick test of timer functionality", + "prompt": "Wait for 2 seconds with updates every 500 milliseconds" + } + ], + "is_official": true +} diff --git a/mcp-registry/servers/tinydb.json b/mcp-registry/servers/tinydb.json new file mode 100644 index 0000000..e3096a7 --- /dev/null +++ b/mcp-registry/servers/tinydb.json @@ -0,0 +1,88 @@ +{ + "name": "tinydb", + "display_name": "TinyDB MCP Server", + "description": "MCP server that uses TinyDB to store and retrieve data. Provides a simple NoSQL database interface with operations for creating tables, inserting documents, querying, updating, and deleting records.", + "repository": { + "type": "git", + "url": "https://github.com/pathintegral-institute/mcp.science" + }, + "homepage": "https://github.com/pathintegral-institute/mcp.science/tree/main/servers/tinydb", + "author": { + "name": "Path Integral Institute" + }, + "license": "MIT", + "categories": ["Databases"], + "tags": [ + "database", + "nosql" + ], + "arguments": { + "DB_FILE": { + "description": "Path to the TinyDB database file (optional, defaults to database.json)", + "required": false, + "example": "/path/to/custom_database.json" + } + }, + "tools": [ + { + "name": "create_table", + "description": "Create a new table in the database" + }, + { + "name": "insert_document", + "description": "Insert a document into a table" + }, + { + "name": "query_documents", + "description": "Query documents from a table with optional filters" + }, + { + "name": "update_documents", + "description": "Update documents in a table" + }, + { + "name": "delete_documents", + "description": "Delete documents from a table" + }, + { + "name": "purge_table", + "description": "Remove all documents from a table" + }, + { + "name": "drop_table", + "description": "Drop a table from the database" + } + ], + "installations": { + "python": { + "type": "python", + "command": "uvx", + "args": ["mcp-science", "tinydb"], + "description": "Install from GitHub using uvx", + "recommended": true + } + }, + "examples": [ + { + "title": "Create and populate a users table", + "description": "Create a users table and insert user records", + "prompt": "Create a users table and insert a user with name 'John Doe', email 'john@example.com', and age 30" + }, + { + "title": "Query database records", + "description": "Search for records matching specific criteria", + "prompt": "Find all users with age greater than 25" + }, + { + "title": "Update existing records", + "description": "Update user information in the database", + "prompt": "Update the email address for user John Doe to 'john.doe@newdomain.com'" + }, + { + "title": "Database maintenance", + "description": "Clean up and manage database tables", + "prompt": "Remove all users older than 65 and then purge the inactive_users table" + } + ], + "is_official": true +} diff --git a/pyproject.toml b/pyproject.toml index 632ad48..e36f8df 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,6 +37,7 @@ dependencies = [ "rich-gradient>=0.3.2", "tomli>=2.2.1", "tomli-w>=1.2.0", + "jsonschema>=4.24.0", ] [project.urls] diff --git a/uv.lock b/uv.lock index 8f167c2..76adbf3 100644 --- a/uv.lock +++ b/uv.lock @@ -627,6 +627,7 @@ dependencies = [ { name = "duckdb" }, { name = "fastmcp" }, { name = "inquirerpy" }, + { name = "jsonschema" }, { name = "mcp" }, { name = "prompt-toolkit" }, { name = "psutil" }, @@ -658,6 +659,7 @@ requires-dist = [ { name = "duckdb", specifier = ">=1.2.2" }, { name = "fastmcp", specifier = "==2.10.2" }, { name = "inquirerpy", specifier = ">=0.3.4" }, + { name = "jsonschema", specifier = ">=4.24.0" }, { name = "mcp", specifier = ">=1.8.0" }, { name = "prompt-toolkit", specifier = ">=3.0.0" }, { name = "psutil", specifier = ">=7.0.0" },