### Manual Installation (Clone/Download) Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Instructions for manually installing the MySQL MCP server by cloning or downloading the repository. This involves setting up a directory, cloning the repo, and installing dependencies. ```bash mkdir ~/mcp-servers/mysql cd ~/mcp-servers/mysql git clone https://github.com/hovecapital/read-only-local-mysql-mcp-server.git . npm install npm run build ``` -------------------------------- ### Manual Installation of MySQL MCP Server Source: https://context7.com/hovecapital/read-only-local-mysql-mcp-server/llms.txt Follow these steps for a manual installation, including cloning the repository, installing dependencies, and building the project. ```bash git clone https://github.com/hovecapital/read-only-local-mysql-mcp-server.git cd read-only-local-mysql-mcp-server npm install npm run build ``` -------------------------------- ### Installation with Claude Code (Repository) Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Steps to install the MySQL MCP server by cloning the repository, installing dependencies, and building the project. This is for users who prefer manual setup or development. ```bash # Clone the repository git clone https://github.com/hovecapital/read-only-local-mysql-mcp-server.git cd read-only-local-mysql-mcp-server # Install dependencies and build npm install npm run build ``` -------------------------------- ### Install MySQL MCP Server via Claude Code CLI Source: https://context7.com/hovecapital/read-only-local-mysql-mcp-server/llms.txt Use this command for a one-click installation for Claude Code users. Set environment variables to configure the default database connection. ```bash # One-command installation for Claude Code users claude mcp add mysql -s user -- npx -y @hovecapital/read-only-mysql-mcp-server@latest # Set environment variables for default database connection export DB_HOST=localhost export DB_PORT=3306 export DB_DATABASE=your_database_name export DB_USERNAME=your_username export DB_PASSWORD=your_password ``` -------------------------------- ### Dynamic Connection Workflow Example Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Demonstrates a sequence of tool calls to manage database connections, including connecting, querying, overriding connection strings, and disconnecting. ```tool 1. connect → mysql://analyst:pass@prod-db:3306/analytics 2. query → SELECT COUNT(*) FROM events 3. query → SELECT * FROM users LIMIT 5 (uses the same analytics connection) 4. query → SELECT * FROM orders LIMIT 5, connectionString: mysql://analyst:pass@prod-db:3306/sales (one-off override — does not change the stored connection) 5. disconnect → reverts to env var defaults ``` -------------------------------- ### Install MySQL MCP Server via npm Source: https://context7.com/hovecapital/read-only-local-mysql-mcp-server/llms.txt Install the MySQL MCP Server globally using npm for use with Claude Code or other environments. ```bash npm install -g @hovecapital/read-only-mysql-mcp-server ``` -------------------------------- ### Recommended Database Setup Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Provides SQL commands for creating a dedicated read-only user and granting necessary permissions. ```APIDOC ## Recommended Database Setup For enhanced security, create a dedicated read-only user for the MCP server: ```sql -- Create a read-only user CREATE USER 'claude_readonly'@'localhost' IDENTIFIED BY 'secure_password'; -- Grant only SELECT permissions on your specific database GRANT SELECT ON your_database_name.* TO 'claude_readonly'@'localhost'; -- Apply the changes FLUSH PRIVILEGES; ``` ``` -------------------------------- ### Install MySQL MCP Server via Claude Code CLI Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md This command installs the MySQL MCP server using the Claude Code CLI. Database credentials should be configured via environment variables. ```bash claude mcp add mysql -s user -- npx -y @hovecapital/read-only-mysql-mcp-server@latest ``` -------------------------------- ### Quick Start with Claude Code CLI Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Use this command to quickly add the MySQL MCP server for Claude Code. Environment variables for database credentials must be set separately. ```bash claude mcp add mysql -s user -- npx -y @hovecapital/read-only-mysql-mcp-server@latest ``` ```bash export DB_HOST=localhost export DB_PORT=3306 export DB_DATABASE=your_database_name export DB_USERNAME=your_username export DB_PASSWORD=your_password ``` -------------------------------- ### Dynamic Connection Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Explains the priority of connection strings and provides an example workflow for dynamic database connections. ```APIDOC ## Dynamic Connection The server supports switching databases at runtime without restarting. Connection priority: 1. **Per-query `connectionString`** — overrides everything for a single query 2. **Runtime connection** (from `connect` tool) — persists until `disconnect` is called 3. **Environment variables** — the default fallback **Connection string format:** ``` mysql://username:password@hostname:port/database_name ``` **Example workflow:** ``` 1. connect → mysql://analyst:pass@prod-db:3306/analytics 2. query → SELECT COUNT(*) FROM events 3. query → SELECT * FROM users LIMIT 5 (uses the same analytics connection) 4. query → SELECT * FROM orders LIMIT 5, connectionString: mysql://analyst:pass@prod-db:3306/sales (one-off override — does not change the stored connection) 5. disconnect → reverts to env var defaults ``` ``` -------------------------------- ### Claude Desktop Configuration Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Configuration for integrating the MySQL MCP server with Claude Desktop via manual installation. ```APIDOC ## Claude Desktop Configuration If you're using Claude Desktop with a manual installation, open your Claude Desktop configuration file: **macOS:** ```bash ~/Library/Application Support/Claude/claude_desktop_config.json ``` **Windows:** ```bash %APPDATA%\Claude\claude_desktop_config.json ``` Add the MySQL server configuration: ```json { "mcpServers": { "mysql": { "command": "node", "args": ["/absolute/path/to/read-only-local-mysql-mcp-server/dist/index.js"], "env": { "DB_HOST": "localhost", "DB_PORT": "3306", "DB_DATABASE": "your_database_name", "DB_USERNAME": "your_username", "DB_PASSWORD": "your_password" } } } } ``` ``` -------------------------------- ### Example Claude MySQL Queries Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md These natural language queries will be converted to SQL by Claude. They cover common database introspection and data retrieval tasks. ```bash "Show me all tables in my database" "What's the structure of the users table?" "Get the first 10 records from the products table" "How many orders were placed last month?" "Show me users with email addresses ending in @gmail.com" ``` -------------------------------- ### Claude Code Configuration Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Configuration for integrating the MySQL MCP server with Claude Code via manual installation. ```APIDOC ## Claude Code Configuration If you're using Claude Code with a manual installation, add the MySQL server to your MCP settings: 1. Open your Claude Code settings (typically in `~/.config/claude-code/settings.json` on macOS/Linux or `%APPDATA%\claude-code\settings.json` on Windows) 2. Add the MySQL MCP server configuration: ```json { "mcp": { "servers": { "mysql": { "command": "node", "args": ["/absolute/path/to/read-only-local-mysql-mcp-server/dist/index.js"], "env": { "DB_HOST": "localhost", "DB_PORT": "3306", "DB_DATABASE": "your_database_name", "DB_USERNAME": "your_username", "DB_PASSWORD": "your_password" } } } } } ``` 3. Restart Claude Code for the changes to take effect. ``` -------------------------------- ### Project File Structure Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Overview of the project's directory and file organization. This helps in understanding where different components are located. ```bash ~/mcp-servers/mysql/ ├── src/ │ └── index.ts ├── dist/ │ ├── index.js │ └── index.d.ts ├── package.json ├── tsconfig.json └── node_modules/ ``` -------------------------------- ### Dynamic Connection Workflow with MySQL MCP Server Source: https://context7.com/hovecapital/read-only-local-mysql-mcp-server/llms.txt Demonstrates switching databases at runtime using 'connect', 'query', and 'disconnect' commands. The server prioritizes explicit connection strings over stored ones for individual queries. ```typescript // Step 1: Connect to analytics database { "name": "connect", "arguments": { "connectionString": "mysql://analyst:pass@prod-db:3306/analytics" } } ``` ```typescript // Step 2: Query uses the analytics connection { "name": "query", "arguments": { "sql": "SELECT COUNT(*) FROM events" } } ``` ```typescript // Step 3: Another query still uses analytics connection { "name": "query", "arguments": { "sql": "SELECT * FROM users LIMIT 5" } } ``` ```typescript // Step 4: One-off query to different database (does not change stored connection) { "name": "query", "arguments": { "sql": "SELECT * FROM orders LIMIT 5", "connectionString": "mysql://analyst:pass@prod-db:3306/sales" } } ``` ```typescript // Step 5: Back to analytics connection automatically { "name": "query", "arguments": { "sql": "SELECT * FROM sessions LIMIT 5" } } ``` ```typescript // Step 6: Disconnect and revert to environment defaults { "name": "disconnect", "arguments": {} } ``` -------------------------------- ### Run Server Manually Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Use this command to run the server directly and view logs for debugging purposes. Ensure you are in the project's root directory. ```bash node dist/index.js ``` -------------------------------- ### connect Source: https://context7.com/hovecapital/read-only-local-mysql-mcp-server/llms.txt Connect to a MySQL database using a connection string. This establishes a runtime connection that persists for subsequent queries until changed or disconnected. ```APIDOC ## connect ### Description Connect to a MySQL database using a connection string. The connection persists for subsequent queries until changed or disconnected. ### Method Tool Call ### Parameters #### Arguments - **connectionString** (string) - Required - The MySQL connection string in the format `mysql://username:password@hostname:port/database_name`. ### Request Example ```json { "name": "connect", "arguments": { "connectionString": "mysql://analyst:secure_password@prod-db.example.com:3306/analytics" } } ``` ### Response #### Success Response - **message** (string) - Confirmation message indicating a successful connection. #### Response Example ``` Connected to MySQL database "analytics" on prod-db.example.com:3306 ``` ### Notes - The connection string format is `mysql://username:password@hostname:port/database_name`. - Special characters in passwords can be URL-encoded, e.g., `p%40ssw0rd%21`. ``` -------------------------------- ### Manual Configuration for Claude Desktop Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Add this JSON configuration to your Claude Desktop config file to manually set up the MySQL MCP server. Ensure database environment variables are correctly set. ```bash # macOS open ~/Library/Application\ Support/Claude/claude_desktop_config.json # Windows notepad %APPDATA%\Claude\claude_desktop_config.json ``` ```json { "mcpServers": { "mysql": { "command": "npx", "args": ["-y", "@hovecapital/read-only-mysql-mcp-server@latest"], "env": { "DB_HOST": "localhost", "DB_PORT": "3306", "DB_DATABASE": "your_database_name", "DB_USERNAME": "your_username", "DB_PASSWORD": "your_password" } } } } ``` -------------------------------- ### Connect to MySQL Database Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Establishes a persistent connection to a MySQL database using a connection string. This connection remains active until changed or disconnected. ```tool connect(connectionString: "mysql://user:password@host:port/database") ``` -------------------------------- ### Connect to MySQL Database using Connection String Source: https://context7.com/hovecapital/read-only-local-mysql-mcp-server/llms.txt Use the 'connect' tool to establish a connection to a MySQL database via a connection string. This connection persists until changed or disconnected. Supports URL-encoded special characters in passwords. ```typescript // Tool: connect // Connect to a production analytics database { "name": "connect", "arguments": { "connectionString": "mysql://analyst:secure_password@prod-db.example.com:3306/analytics" } } // Expected response: // Connected to MySQL database "analytics" on prod-db.example.com:3306 // Connection string format: // mysql://username:password@hostname:port/database_name // Example with URL-encoded special characters in password: { "name": "connect", "arguments": { "connectionString": "mysql://admin:p%40ssw0rd%21@localhost:3306/myapp" } } ``` -------------------------------- ### Run Basic SELECT Query with MySQL MCP Server Source: https://context7.com/hovecapital/read-only-local-mysql-mcp-server/llms.txt Execute a basic SELECT query against the currently connected database. Ensure the tool is configured with the correct connection details. ```typescript // Tool: query // Basic SELECT query using current connection { "name": "query", "arguments": { "sql": "SELECT * FROM users LIMIT 10" } } ``` ```typescript // Query with one-time connection override (does not change stored connection) { "name": "query", "arguments": { "sql": "SELECT COUNT(*) as total FROM orders WHERE status = 'completed'", "connectionString": "mysql://reader:password@sales-db:3306/sales" } } ``` ```typescript // List all tables in database { "name": "query", "arguments": { "sql": "SHOW TABLES" } } ``` ```typescript // Get table structure { "name": "query", "arguments": { "sql": "DESCRIBE users" } } ``` ```typescript // Complex analytical query { "name": "query", "arguments": { "sql": "SELECT DATE(created_at) as date, COUNT(*) as orders, SUM(total) as revenue FROM orders WHERE created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY DATE(created_at) ORDER BY date DESC" } } ``` ```typescript // Blocked write operation example (will return error) { "name": "query", "arguments": { "sql": "DELETE FROM users WHERE id = 1" } } ``` -------------------------------- ### Configure MySQL MCP Server in Claude Desktop Source: https://context7.com/hovecapital/read-only-local-mysql-mcp-server/llms.txt Add the MySQL MCP server configuration to your Claude Desktop settings file. Ensure the 'env' object contains your database credentials. ```json { "mcpServers": { "mysql": { "command": "npx", "args": ["-y", "@hovecapital/read-only-mysql-mcp-server@latest"], "env": { "DB_HOST": "localhost", "DB_PORT": "3306", "DB_DATABASE": "your_database_name", "DB_USERNAME": "your_username", "DB_PASSWORD": "your_password" } } } } ``` -------------------------------- ### Environment Variables Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Environment variables that can be configured for the MySQL MCP server. ```APIDOC ## Environment Variables | Variable | Description | Default | |----------|-------------|---------| | `DB_HOST` | MySQL server hostname | `mysql` | | `DB_PORT` | MySQL server port | `3306` | | `DB_DATABASE` | Database name | `database` | | `DB_USERNAME` | MySQL username | `root` | | `DB_PASSWORD` | MySQL password | (empty) | ``` -------------------------------- ### Create Read-Only MySQL User for MCP Server Source: https://context7.com/hovecapital/read-only-local-mysql-mcp-server/llms.txt SQL commands to create a dedicated read-only user and grant necessary SELECT permissions on a specific database. Remember to replace 'your_database_name' and 'secure_password'. ```sql -- Create a dedicated read-only user for the MCP server CREATE USER 'claude_readonly'@'localhost' IDENTIFIED BY 'secure_password'; -- Grant only SELECT permissions on your specific database GRANT SELECT ON your_database_name.* TO 'claude_readonly'@'localhost'; -- Apply the changes FLUSH PRIVILEGES; ``` -------------------------------- ### Execute Read-Only SQL Query Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Runs a read-only SQL query against the currently connected database. An optional connection string can override the current connection for a single query. ```tool query(sql: "SQL query to execute (read-only)", connectionString: "mysql://username:password@hostname:port/database_name") ``` -------------------------------- ### Claude Desktop MySQL MCP Server Configuration Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Add this JSON configuration to your Claude Desktop configuration file to connect to a local MySQL server. Ensure the path to the server script is absolute. ```json { "mcpServers": { "mysql": { "command": "node", "args": ["/absolute/path/to/read-only-local-mysql-mcp-server/dist/index.js"], "env": { "DB_HOST": "localhost", "DB_PORT": "3306", "DB_DATABASE": "your_database_name", "DB_USERNAME": "your_username", "DB_PASSWORD": "your_password" } } } } ``` -------------------------------- ### query Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Run a read-only SQL query against the currently connected database. ```APIDOC ## `query` Run a read-only SQL query against the currently connected database. **Parameters:** | Parameter | Required | Description | |-----------|----------|-------------| | `sql` | Yes | SQL query to execute (read-only) | | `connectionString` | No | MySQL connection string to override the current connection for this query only | ``` -------------------------------- ### Application TypeScript Configuration Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/CLAUDE.md Compiler options for Node.js applications, specifying the module system, output directory, and source map generation for debugging. ```json { "compilerOptions": { "module": "NodeNext", "outDir": "dist", "sourceMap": true } } ``` -------------------------------- ### disconnect Source: https://context7.com/hovecapital/read-only-local-mysql-mcp-server/llms.txt Disconnect from the current runtime database and revert to the default environment-configured connection. This tool takes no parameters. ```APIDOC ## disconnect ### Description Disconnect from the current runtime database and revert to the default environment-configured connection. Takes no parameters. ### Method Tool Call ### Parameters #### Arguments This tool takes no arguments. ### Request Example ```json { "name": "disconnect", "arguments": {} } ``` ### Response #### Success Response - **message** (string) - Confirmation message indicating disconnection. #### Response Example ``` Disconnected from runtime database. Future queries will use the default environment-configured connection. ``` ``` -------------------------------- ### Library TypeScript Configuration Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/CLAUDE.md Compiler option for libraries to generate declaration files (.d.ts) for consumers. ```json { "compilerOptions": { "declaration": true } } ``` -------------------------------- ### DOM Application TypeScript Configuration Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/CLAUDE.md Compiler option to include necessary libraries for DOM applications, specifically 'es2022', 'dom', and 'dom.iterable'. ```json { "compilerOptions": { "lib": ["es2022", "dom", "dom.iterable"] } } ``` -------------------------------- ### Bundled Application TypeScript Configuration Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/CLAUDE.md Compiler options for applications that are bundled, preserving the module format and disabling JavaScript file emission. ```json { "compilerOptions": { "module": "preserve", "noEmit": true } } ``` -------------------------------- ### disconnect Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Disconnect from the current runtime database and revert to the default environment-configured connection. ```APIDOC ## `disconnect` Disconnect from the current runtime database and revert to the default environment-configured connection. Takes no parameters. ``` -------------------------------- ### Create Read-Only MySQL User Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md SQL commands to create a dedicated read-only user and grant it SELECT privileges on a specific database. This enhances security by limiting the server's access. ```sql -- Create a read-only user CREATE USER 'claude_readonly'@'localhost' IDENTIFIED BY 'secure_password'; -- Grant only SELECT permissions on your specific database GRANT SELECT ON your_database_name.* TO 'claude_readonly'@'localhost'; -- Apply the changes FLUSH PRIVILEGES; ``` -------------------------------- ### Base TypeScript Configuration Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/CLAUDE.md Essential compiler options for all TypeScript projects, enabling module interoperability, skipping library checks, targeting ES2022, allowing JavaScript imports, resolving JSON modules, forcing module detection, and enforcing isolated modules with verbatim module syntax. ```json { "compilerOptions": { "esModuleInterop": true, "skipLibCheck": true, "target": "es2022", "allowJs": true, "resolveJsonModule": true, "moduleDetection": "force", "isolatedModules": true, "verbatimModuleSyntax": true } } ``` -------------------------------- ### Monorepo Library TypeScript Configuration Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/CLAUDE.md Compiler options for libraries within a monorepo, enabling declaration file generation, project references, source maps, and declaration map generation. ```json { "compilerOptions": { "declaration": true, "composite": true, "sourceMap": true, "declarationMap": true } } ``` -------------------------------- ### Node.js Application TypeScript Configuration Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/CLAUDE.md Compiler option to include the 'es2022' library for Node.js applications. ```json { "compilerOptions": { "lib": ["es2022"] } } ``` -------------------------------- ### Disconnect from MySQL Database Source: https://context7.com/hovecapital/read-only-local-mysql-mcp-server/llms.txt Use the 'disconnect' tool to end the current runtime database connection and revert to the default environment-configured connection. This tool takes no parameters. ```typescript // Tool: disconnect // Revert to default environment connection { "name": "disconnect", "arguments": {} } // Expected response: // Disconnected from runtime database. Future queries will use the default environment-configured connection. ``` -------------------------------- ### Disconnect from MySQL Database Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Terminates the current runtime database connection and reverts to the default connection configured via environment variables. ```tool disconnect() ``` -------------------------------- ### Identify Blocked Write Operations in MySQL MCP Server Source: https://context7.com/hovecapital/read-only-local-mysql-mcp-server/llms.txt Illustrates the logic used by the server to identify and block SQL write operations. This prevents accidental data modification. ```typescript // These operations are automatically blocked: // - INSERT - Adding new records // - UPDATE - Modifying existing records // - DELETE - Removing records // - DROP - Removing tables/databases // - ALTER - Modifying table structure // - CREATE - Creating new tables/databases // Query validation implementation: const writeOperations = ["insert", "update", "delete", "drop", "alter", "create"]; const isBlocked = writeOperations.some(op => sql.trim().toLowerCase().startsWith(op)); ``` -------------------------------- ### Strict TypeScript Configuration Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/CLAUDE.md Required compiler options for all projects to enforce strict type checking, including no unchecked indexed access and no implicit overrides. ```json { "compilerOptions": { "strict": true, "noUncheckedIndexedAccess": true, "noImplicitOverride": true } } ``` -------------------------------- ### Configure MySQL MCP Server in Claude Code Source: https://context7.com/hovecapital/read-only-local-mysql-mcp-server/llms.txt Add the MySQL MCP server configuration to your Claude Code settings file. This allows Claude Code to connect to your MySQL database. ```json { "mcp": { "servers": { "mysql": { "command": "npx", "args": ["-y", "@hovecapital/read-only-mysql-mcp-server@latest"], "env": { "DB_HOST": "localhost", "DB_PORT": "3306", "DB_DATABASE": "your_database_name", "DB_USERNAME": "your_username", "DB_PASSWORD": "your_password" } } } } } ``` -------------------------------- ### Read-Only Operations Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Details the security features, specifically that the server only allows SELECT queries and blocks write operations. ```APIDOC ## Read-Only Operations The server only allows SELECT queries. The following operations are blocked: - `INSERT` - Adding new records - `UPDATE` - Modifying existing records - `DELETE` - Removing records - `DROP` - Removing tables/databases - `ALTER` - Modifying table structure - `CREATE` - Creating new tables/databases ``` -------------------------------- ### Claude Code MySQL MCP Server Configuration Source: https://github.com/hovecapital/read-only-local-mysql-mcp-server/blob/main/README.md Add this JSON configuration to your Claude Code settings to connect to a local MySQL server. Ensure the path to the server script is absolute. ```json { "mcp": { "servers": { "mysql": { "command": "node", "args": ["/absolute/path/to/read-only-local-mysql-mcp-server/dist/index.js"], "env": { "DB_HOST": "localhost", "DB_PORT": "3306", "DB_DATABASE": "your_database_name", "DB_USERNAME": "your_username", "DB_PASSWORD": "your_password" } } } } } ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.