{"_id":"@dhipskind253/mysql-mcp","_rev":"2-e12719a8edae7e23fedc4b521fa9d974","name":"@dhipskind253/mysql-mcp","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@dhipskind253/mysql-mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","mysql","aws","aws-secrets-manager","claude","read-only"],"author":{"name":"dhipskind253"},"license":"MIT","_id":"@dhipskind253/mysql-mcp@0.1.0","maintainers":[{"name":"dhipskind253","email":"dhipskind253@gmail.com"}],"homepage":"https://github.com/dhipskind253/mysql-mcp#readme","bugs":{"url":"https://github.com/dhipskind253/mysql-mcp/issues"},"bin":{"mysql-mcp":"dist/index.js"},"dist":{"shasum":"68333d5cbd49bec4b27c45978ff634502968ae14","tarball":"https://registry.npmjs.org/@dhipskind253/mysql-mcp/-/mysql-mcp-0.1.0.tgz","fileCount":6,"integrity":"sha512-pXZeSvLEyjuP6FD0PmFxuXW4bWWnJuAzQVV3hxD5DWDtwKoe6Yx3lcFuY5UQYj5EkpPUgncsJMtDQQR7kVFnKw==","signatures":[{"sig":"MEUCIC/UyX/L3m9rqH5qkTUQXUZ/FvD3fnWzqGh3dDwCLEuyAiEAm9STZW2CSjHaowa9v+PBid/Wgr5Fm/fSOO34FvOj694=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23132},"type":"module","engines":{"node":">=18"},"gitHead":"d3483a2f6bdaeb446b4aefe6d5fa923bb54d0690","scripts":{"build":"tsc && chmod +x dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dhipskind253","email":"dhipskind253@gmail.com"},"repository":{"url":"git+https://github.com/dhipskind253/mysql-mcp.git","type":"git"},"_npmVersion":"8.19.2","description":"Read-only MySQL MCP server. Connection details are loaded from AWS Secrets Manager — never from disk or env.","directories":{},"_nodeVersion":"18.12.1","dependencies":{"zod":"^3.23.8","mysql2":"^3.11.0","@modelcontextprotocol/sdk":"^1.0.4","@aws-sdk/client-secrets-manager":"^3.620.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.4","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/mysql-mcp_0.1.0_1778524677062_0.9137796311564188","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dhipskind253/mysql-mcp","version":"0.1.1","description":"Read-only MySQL MCP server. Connection details are loaded from AWS Secrets Manager — never from disk or env.","keywords":["mcp","model-context-protocol","mysql","aws","aws-secrets-manager","claude","read-only"],"homepage":"https://github.com/dhipskind253/mysql-mcp#readme","bugs":{"url":"https://github.com/dhipskind253/mysql-mcp/issues"},"repository":{"type":"git","url":"git+https://github.com/dhipskind253/mysql-mcp.git"},"license":"MIT","author":{"name":"dhipskind253"},"type":"module","bin":{"mysql-mcp":"dist/index.js"},"scripts":{"build":"tsc && chmod +x dist/index.js","prepublishOnly":"npm run build"},"engines":{"node":">=18"},"dependencies":{"@aws-sdk/client-secrets-manager":"^3.620.0","@modelcontextprotocol/sdk":"^1.0.4","mysql2":"^3.11.0","zod":"^3.23.8"},"devDependencies":{"@types/node":"^20.14.0","typescript":"^5.5.4"},"gitHead":"23924cbad69248495f36975048887cd872a17639","_id":"@dhipskind253/mysql-mcp@0.1.1","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-CdbWpLMQoisexoKXkDG5rcl61AL1jl6SghNnFeQxP2tW51nb1Oe5civrOE7uUvKseG5VaB1ixECJefilAKbYXw==","shasum":"ab51293aad8e66f126f6400d8dcbfdb8f4317a6d","tarball":"https://registry.npmjs.org/@dhipskind253/mysql-mcp/-/mysql-mcp-0.1.1.tgz","fileCount":6,"unpackedSize":23496,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIG/LlIL7WLZo/D7h9ZDWgp9n6nPhjNLzAf/684cqm14CAiEAkJh5QgzXka3L5JiSr8NaucYVNzLe6yr4fjTcLQK5J/Y="}]},"_npmUser":{"name":"dhipskind253","email":"dhipskind253@gmail.com"},"directories":{},"maintainers":[{"name":"dhipskind253","email":"dhipskind253@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mysql-mcp_0.1.1_1778526334423_0.8271714457410855"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-11T18:37:56.961Z","modified":"2026-05-11T19:05:34.679Z","0.1.0":"2026-05-11T18:37:57.207Z","0.1.1":"2026-05-11T19:05:34.567Z"},"bugs":{"url":"https://github.com/dhipskind253/mysql-mcp/issues"},"author":{"name":"dhipskind253"},"license":"MIT","homepage":"https://github.com/dhipskind253/mysql-mcp#readme","keywords":["mcp","model-context-protocol","mysql","aws","aws-secrets-manager","claude","read-only"],"repository":{"type":"git","url":"git+https://github.com/dhipskind253/mysql-mcp.git"},"description":"Read-only MySQL MCP server. Connection details are loaded from AWS Secrets Manager — never from disk or env.","maintainers":[{"name":"dhipskind253","email":"dhipskind253@gmail.com"}],"readme":"# mysql-mcp\r\n\r\nRead-only MySQL [MCP](https://modelcontextprotocol.io/) server.  \r\nConnection credentials are loaded from **AWS Secrets Manager** — never from disk or environment variables.\r\n\r\n## Quick start\r\n\r\n```bash\r\nnpx @dhipskind253/mysql-mcp\r\n```\r\n\r\n### Required environment variables\r\n\r\n| Variable | Description |\r\n|---|---|\r\n| `AWS_ACCOUNT_ID` | AWS account ID that owns the secret |\r\n| `SECRET_NAME` | Name of the secret in Secrets Manager |\r\n| `AWS_REGION` | AWS region (e.g. `us-east-1`) |\r\n| `SSL` | Enable/disable SSL (default: `true`). Set to `false` to disable. |\r\n| `SSL_REJECT_UNAUTHORIZED` | Verify the server cert chain (default: `true`). Set to `false` to keep TLS encryption but skip chain validation — needed for servers with self-signed or internal-CA certs. |\r\n\r\n### Secret format\r\n\r\nThe secret must be JSON with these fields:\r\n\r\n```json\r\n{\r\n  \"host\": \"my-db.cluster-abc.us-west-2.rds.amazonaws.com\",\r\n  \"port\": 3306,\r\n  \"database\": \"mydb\",\r\n  \"username\": \"readonly_user\",\r\n  \"password\": \"...\"\r\n}\r\n```\r\n\r\n`dbname` is accepted as an alias for `database` (matching the RDS credential template).\r\n\r\n### MCP client configuration\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"mysql\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@dhipskind253/mysql-mcp\"],\r\n      \"env\": {\r\n        \"AWS_ACCOUNT_ID\": \"123456789012\",\r\n        \"SECRET_NAME\": \"prod/mysql/readonly\",\r\n        \"AWS_REGION\": \"us-west-2\",\r\n        \"SSL\": \"true\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n## Tools\r\n\r\n| Tool | Description |\r\n|---|---|\r\n| `list_schemas` | List user-defined schemas (databases) |\r\n| `list_tables` | List tables, optionally filtered by schema |\r\n| `describe_table` | Columns, types, nullability, auto-increment, PK, defaults |\r\n| `list_indexes` | Indexes on a table |\r\n| `list_foreign_keys` | Foreign keys from a table |\r\n| `list_views` | List views, optionally filtered by schema |\r\n| `get_view_definition` | SQL definition of a view |\r\n| `list_procedures` | List stored procedures |\r\n| `get_procedure_definition` | SQL definition of a stored procedure |\r\n| `sample_rows` | `SELECT * LIMIT N` (default 10, max 100) |\r\n| `run_select` | Run a single `SELECT` / `WITH` statement (max 1000 rows) |\r\n| `refresh_secret` | Re-fetch credentials from Secrets Manager and reconnect |\r\n\r\n## Security\r\n\r\n- Only `SELECT` and `WITH` (CTE) statements are allowed. DML, DDL, `CALL`, and other write operations are rejected before reaching the server.\r\n- The database login should be a read-only user as a defense-in-depth measure.\r\n- Credentials never touch disk or environment variables — they are fetched from Secrets Manager on startup.\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}