Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions mcp-registry/servers/gpaw-computation.json
Original file line number Diff line number Diff line change
@@ -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": "[email protected]"
},
"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
}
},
Comment on lines +20 to +30
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Add Materials Project API key argument and env forwarding

PR description states MP API integration, but no argument/env is defined. This likely breaks authenticated flows.

Proposed update adding MP_API_KEY and forwarding it:

   "tags": [
     "quantum",
     "computation"
   ],
-  "arguments": {},
+  "arguments": {
+    "MP_API_KEY": {
+      "description": "Materials Project API key (https://materialsproject.org)",
+      "required": true,
+      "secret": true,
+      "example": "your-mp-api-key"
+    }
+  },
   "installations": {
-    "uvx": {
+    "uvx": {
       "type": "uvx",
       "command": "uvx",
       "args": [
         "--from",
         "git+https://github.com/pathintegral-institute/mcp.science.git#subdirectory=servers/gpaw-computation",
         "gpaw-computation"
       ],
-      "env": {},
+      "env": {
+        "MP_API_KEY": "${MP_API_KEY}"
+      },
       "description": "Install from GitHub using uvx",
       "recommended": true
     }
   },

Run this to discover the canonical env var used across manifests for Materials Project:


🏁 Script executed:

#!/bin/bash
rg -n --pretty --hidden -S 'MP_API_KEY|MAPI_KEY|MPI_API_KEY' mcp-registry/servers || true

Length of output: 192


🏁 Script executed:

#!/bin/bash
# Display the first 100 lines of the gpaw-computation manifest for context
sed -n '1,100p' mcp-registry/servers/gpaw-computation.json

Length of output: 1666


Add MP_API_KEY argument and forward env to Python installer

To enable authenticated Materials Project API calls (per PR description), the gpaw-computation.json manifest needs to declare the MP_API_KEY argument and inject it into the installer’s environment. This follows the pattern in materials-project.json, which uses MP_API_KEY as the canonical variable name.

Targets:

  • mcp-registry/servers/gpaw-computation.json
--- a/mcp-registry/servers/gpaw-computation.json
+++ b/mcp-registry/servers/gpaw-computation.json
@@
-  "arguments": {},
+  "arguments": {
+    "MP_API_KEY": {
+      "description": "Materials Project API key (https://materialsproject.org)",
+      "required": true,
+      "secret": true,
+      "example": "your-mp-api-key"
+    }
+  },
@@
-    "python": {
+    "python": {
       "type": "python",
       "command": "uvx",
       "args": ["mcp-science", "gpaw-computation"],
-      "env": {},
+      "env": {
+        "MP_API_KEY": "${MP_API_KEY}"
+      },
       "description": "Install from GitHub using uvx",
       "recommended": true
     }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"arguments": {},
"installations": {
"python": {
"type": "python",
"command": "uvx",
"args": ["mcp-science", "gpaw-computation"],
"env": {},
"description": "Install from GitHub using uvx",
"recommended": true
}
},
"arguments": {
"MP_API_KEY": {
"description": "Materials Project API key (https://materialsproject.org)",
"required": true,
"secret": true,
"example": "your-mp-api-key"
}
},
"installations": {
"python": {
"type": "python",
"command": "uvx",
"args": ["mcp-science", "gpaw-computation"],
"env": {
"MP_API_KEY": "${MP_API_KEY}"
},
"description": "Install from GitHub using uvx",
"recommended": true
}
},
🤖 Prompt for AI Agents
In mcp-registry/servers/gpaw-computation.json around lines 20–30, the manifest
is missing the MP_API_KEY argument and does not forward that environment
variable into the Python installer; add an entry "MP_API_KEY" under the
top-level "arguments" object and add an "MP_API_KEY" key to
installations.python.env that forwards the argument value (e.g. set the env
value to the corresponding argument placeholder used in other manifests so the
installer receives MP_API_KEY at runtime).

"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
}
70 changes: 70 additions & 0 deletions mcp-registry/servers/nemad.json
Original file line number Diff line number Diff line change
@@ -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
}
51 changes: 51 additions & 0 deletions mcp-registry/servers/netket.json
Original file line number Diff line number Diff line change
@@ -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
}
66 changes: 66 additions & 0 deletions mcp-registry/servers/timer.json
Original file line number Diff line number Diff line change
@@ -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
}
88 changes: 88 additions & 0 deletions mcp-registry/servers/tinydb.json
Original file line number Diff line number Diff line change
@@ -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 '[email protected]', 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 '[email protected]'"
},
{
"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
}
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down
2 changes: 2 additions & 0 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.