The server now properly handles Linear's rich text descriptions for projects:
Legacy Support: Maintains compatibility with the old description field
Rich Content: Uses Linear's documentContent field for actual description content
Automatic Fallback: Falls back to legacy field if rich content is unavailable
Type Safety: Includes proper TypeScript types for both description formats
How It Works
Linear uses a dual-field system for descriptions:
description - Legacy field (often empty for backward compatibility)
documentContent.content - Contains the actual rich text description content
The MCP server automatically:
Queries both fields from Linear's API
Prioritizes documentContent.content over the legacy description field
Provides a utility function getProjectDescription() for consistent access
Returns an actualDescription field in responses for easy access
Features in Development
The following features are currently being worked on:
Issue Management
🚧 Complex search filters
🚧 Pagination support for large result sets
Metadata Operations
🚧 Label management (create/update/assign)
🚧 Cycle/milestone management
Project Management
🚧 Project template support
🚧 Advanced project operations
Authentication
🚧 OAuth flow with automatic token refresh
Performance & Security
🚧 Rate limiting
🚧 Detailed logging
🚧 Load testing and optimization
Development
hljs language-bash
# Install dependencies
npm install
# Run tests
npm test# Run integration tests (requires LINEAR_API_KEY)
npm run test:integration
# Build the server
npm run build
# Start the server
npm start
Integration Testing
Integration tests verify that authentication and API calls work correctly:
Set up authentication (API Key recommended for testing)
Run integration tests:
hljs language-bash
npm run test:integration
For OAuth testing:
Configure OAuth credentials in .env
Remove .skip from OAuth tests in src/__tests__/auth.integration.test.ts
Run integration tests
Recent Improvements
Project Description Support (Latest)
✅ Fixed empty project descriptions by implementing Linear's documentContent field support
✅ Added proper TypeScript types for rich text content
✅ Implemented automatic fallback from rich content to legacy description
✅ Updated all project-related queries and handlers
✅ Added comprehensive tests for new description handling
✅ Maintained backward compatibility with existing API consumers
Previous Improvements
✅ Enhanced type safety across all operations
✅ Implemented true batch operations for better performance
✅ Improved error handling and validation
✅ Added comprehensive test coverage
✅ Refactored architecture for better maintainability