Bug Report: redis_database_list_databases returns note string instead of database list
Summary
The redis_database_list_databases tool in @upstash/mcp-server returns only an informational note string instead of the actual database list, even when databases exist and the underlying API call succeeds.
Expected Behavior
According to the tool descriptor, redis_database_list_databases should:
- List all Upstash redis databases
- Return database names and IDs
- Provide structured data that can be used by MCP clients
Actual Behavior
When calling the tool via MCP, the response received is:
"NOTE: If the user wants to see dbs in another team, mention that they need to create a new management api key for that team and initialize MCP server with the newly created key."
This is just a note string, not the actual database list.
Evidence
1. API Call Succeeds
When running the MCP server with debug logging, the underlying Upstash API call succeeds and returns valid database data:
[DEBUG] <- received response [
{
"database_id": "ee452215-e9f0-46c6-9862-81895b612aa3",
"database_name": "SINNA1.0UPDATED27.12.25",
"database_type": "Pay as You Go",
"region": "global",
...
}
]
The API returns valid database data, but the MCP tool does not format/return this data correctly.
2. Other Tools Work Correctly
The redis_database_get_details tool works correctly when called with a specific database ID, confirming:
- ✅ Authentication works
- ✅ API connection works
- ✅ Database exists and is accessible
- ❌ Only
list_databases has the response formatting bug
3. Direct API Call Works
A direct API call using Basic Auth (email:apiKey) successfully retrieves the database list, confirming the API itself works correctly.
Root Cause Hypothesis
The bug appears to be in the response formatting logic of the redis_database_list_databases tool. The tool:
- ✅ Successfully calls the Upstash API
- ✅ Receives valid database data
- ❌ Returns only an informational note instead of formatting the database list
Possible causes:
- Response formatting logic incorrectly extracts/returns only the note from a larger response object
- Conditional logic that returns the note when certain conditions are met, but this condition is incorrectly triggered
- Recent version change introduced a bug where the response structure changed but the formatting wasn't updated
Impact
- Severity: Medium
- User Impact: Users cannot list their databases via the MCP tool
- Workaround: Use
redis_database_get_details with specific database IDs (requires knowing IDs beforehand), or call the Upstash API directly
Environment
- Package:
@upstash/mcp-server@latest
- MCP Client: Cursor IDE
- Upstash Account: Has 1+ active database(s)
- API Key: Valid and working (confirmed via
get_details tool and direct API calls)
Recommended Fix
The tool should:
- Call the Upstash API to get the database list (✅ already working)
- Format the response as an array of objects with
database_name and optionally database_id
- Return structured data instead of just a note string
- Only show the note if it's truly informational (e.g., as a prefix or suffix, not as the only content)
Test Case
Input:
{
"name": "redis_database_list_databases",
"arguments": {}
}
Expected Output:
{
"content": [
{
"type": "text",
"text": "Databases:\n- SINNA1.0UPDATED27.12.25 (ID: ee452215-e9f0-46c6-9862-81895b612aa3)"
}
]
}
Actual Output:
{
"content": [
{
"type": "text",
"text": "NOTE: If the user wants to see dbs in another team..."
}
]
}
Additional Notes
- The informational note about teams/API keys is useful, but it should not replace the actual database list
- The note could be included as additional context, but the primary response should be the database list
Bug Report:
redis_database_list_databasesreturns note string instead of database listSummary
The
redis_database_list_databasestool in@upstash/mcp-serverreturns only an informational note string instead of the actual database list, even when databases exist and the underlying API call succeeds.Expected Behavior
According to the tool descriptor,
redis_database_list_databasesshould:Actual Behavior
When calling the tool via MCP, the response received is:
This is just a note string, not the actual database list.
Evidence
1. API Call Succeeds
When running the MCP server with debug logging, the underlying Upstash API call succeeds and returns valid database data:
The API returns valid database data, but the MCP tool does not format/return this data correctly.
2. Other Tools Work Correctly
The
redis_database_get_detailstool works correctly when called with a specific database ID, confirming:list_databaseshas the response formatting bug3. Direct API Call Works
A direct API call using Basic Auth (email:apiKey) successfully retrieves the database list, confirming the API itself works correctly.
Root Cause Hypothesis
The bug appears to be in the response formatting logic of the
redis_database_list_databasestool. The tool:Possible causes:
Impact
redis_database_get_detailswith specific database IDs (requires knowing IDs beforehand), or call the Upstash API directlyEnvironment
@upstash/mcp-server@latestget_detailstool and direct API calls)Recommended Fix
The tool should:
database_nameand optionallydatabase_idTest Case
Input:
{ "name": "redis_database_list_databases", "arguments": {} }Expected Output:
{ "content": [ { "type": "text", "text": "Databases:\n- SINNA1.0UPDATED27.12.25 (ID: ee452215-e9f0-46c6-9862-81895b612aa3)" } ] }Actual Output:
{ "content": [ { "type": "text", "text": "NOTE: If the user wants to see dbs in another team..." } ] }Additional Notes