Skip to content

feat: add displayName support for user-friendly MCP integration names#177

Merged
olivermontes merged 8 commits intodevelopfrom
changes-1.7.0-version
Jan 17, 2026
Merged

feat: add displayName support for user-friendly MCP integration names#177
olivermontes merged 8 commits intodevelopfrom
changes-1.7.0-version

Conversation

@olivermontes
Copy link
Contributor

Summary

Adds optional displayName field to MCP integrations to show user-friendly names in the UI while maintaining technical names for API compatibility.

Changes

Type System

  • Add displayName?: string field to LevanteAPIServer and MCPRegistryEntry types
  • Ensures backward compatibility with optional field

Data Layer

  • Map displayName from API responses in MCPProviderService
  • Transform and cache displayName along with other server metadata

UI Components

  • IntegrationCard: Display displayName with fallback to name
  • MCPInfoSheet: Use displayName for titles and alt text
  • StoreLayout: Show displayName in toast notifications and modals
  • App.tsx: Display displayName in configuration modal title

Logic & Config

  • Server configs continue to use technical name (no special characters)
  • Search includes both displayName and name for better discoverability
  • AI tools search and display using displayName

Example

Before:

  • Display: "Buscador_de_vuelos_navidenos"
  • Config: name: "Buscador_de_vuelos_navidenos"

After:

  • Display: "Buscador de vuelos navideños" (from displayName)
  • Config: name: "Buscador_de_vuelos_navidenos" (unchanged, API-safe)

Benefits

  1. Better UX: Users see readable, properly formatted names
  2. API Compatibility: Technical names remain safe for LLM APIs and tools
  3. Backward Compatible: Falls back to name if displayName not provided
  4. Searchable: Both names are indexed for search

Testing

  • UI displays displayName when available
  • UI falls back to name when displayName is missing
  • Server configs use technical name
  • Search works with both displayName and name
  • Toast notifications show displayName

🤖 Generated with Claude Code

olivermontes and others added 8 commits January 17, 2026 10:34
- Add .mcp.json and .claude/ to .gitignore
- Remove files from git tracking while preserving local copies
- Ensures user-specific Claude Code settings remain local

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…menu

Improves UX by organizing MCP servers into 'Enabled' and 'Disabled' tabs, with enabled servers shown by default. Users can switch to the disabled tab to re-enable servers as needed.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Resolves #158

The title generation for new chats was blocking the entire flow,
causing a 3-5 second delay before redirecting to the chat page.

Changes:
- Title generation now runs in background (fire-and-forget)
- Redirect happens immediately after message persistence
- Title updates asynchronously when ready
- Added error handling for background title generation

Impact:
- Chat creation feels instant
- Better perceived performance
- Title appears 1-2 seconds later without blocking UX

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- ai: 6.0.3 → 6.0.39
- @ai-sdk/anthropic: 3.0.1 → 3.0.15
- @ai-sdk/gateway: 3.0.2 → 3.0.16
- @ai-sdk/google: 3.0.1 → 3.0.10
- @ai-sdk/openai: 3.0.1 → 3.0.12
- @ai-sdk/openai-compatible: 2.0.1 → 2.0.13
- @ai-sdk/react: 3.0.3 → 3.0.41

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…execution2"

This reverts commit 9b031a0, reversing
changes made to 3576f65.
The ToolsMenu was displaying "No MCP servers configured" even when servers
were connected and functioning. This happened because the MCP store state
(activeServers, connectionStatus) was only loaded when visiting the Store page.

Changes:
- Load MCP state on app startup in useMCPEvents hook
- Add periodic refresh of connection status (30s interval)
- Remove duplicate connection refresh interval in store-layout

This ensures the ToolsMenu shows accurate server status from app start.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Some MCP servers only implement structuredContent (MCP spec 2025-06-18)
without providing the legacy content field. This caused responses to
appear empty in the UI. Now both MCP service implementations prioritize
structuredContent as the primary data source and fall back to content
for backward compatibility.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Adds optional displayName field to MCP integrations to show user-friendly
names in the UI while maintaining technical names for API compatibility.

- Add displayName field to LevanteAPIServer and MCPRegistryEntry types
- Map displayName from API responses in MCPProviderService
- Update UI components to display displayName with fallback to name
- Use technical name for server config to avoid special characters in APIs
- Include displayName in search queries for better discoverability
- Update AI tools to search and display using displayName

This allows integrations like "Buscador_de_vuelos_navidenos" to be shown
as "Buscador de vuelos navideños" while keeping API-safe names in configs.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@olivermontes olivermontes merged commit 27d4b28 into develop Jan 17, 2026
1 check passed
@olivermontes olivermontes deleted the changes-1.7.0-version branch January 17, 2026 12:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant