MVP: Implement core MCP server with documentation and source tools #1

Open
opened 2025-12-28 13:05:57 +00:00 by mprihoda · 0 comments
mprihoda commented 2025-12-28 13:05:57 +00:00 (Migrated from github.com)

Overview

Implement the initial MVP of javadocs-mcp - an HTTP-based MCP server that provides on-demand Javadoc/Scaladoc and source code for JVM dependencies.

Goals

  • HTTP-based MCP server (shared across projects, efficient caching)
  • Two tools: get_documentation and get_source
  • Class-level granularity
  • Support both Javadoc and Scaladoc
  • Use Coursier for artifact resolution

Scope

In Scope

  • HTTP MCP transport with SSE
  • get_documentation(coordinates, className) - fetch and return Javadoc/Scaladoc HTML
  • get_source(coordinates, className) - fetch and return source file content
  • Coursier integration for fetching -javadoc.jar and -sources.jar
  • Basic error handling (artifact not found, class not found)

Out of Scope (Future)

  • Markdown conversion of HTML docs
  • Project-aware dependency discovery (parsing build.sbt, pom.xml, etc.)
  • Method-level granularity
  • Package listing/navigation
  • Persistent caching (in-memory only for MVP)

Technical Decisions

  • Scala 3 with scala-cli
  • Coursier for dependency resolution
  • HTTP server choice TBD (Tapir/http4s vs simpler options)
  • MCP transport HTTP with SSE for streaming

Tasks

Detailed analysis and task breakdown needed for:

  1. MCP HTTP transport implementation
  2. Coursier integration
  3. JAR content extraction
  4. Tool interface design
  5. Error handling strategy
  6. Testing approach

Success Criteria

  • Claude Code can connect to the running server
  • Can successfully fetch Javadoc for a class like cats.effect.IO
  • Can successfully fetch source for the same class
  • Proper error messages for missing artifacts or classes
## Overview Implement the initial MVP of javadocs-mcp - an HTTP-based MCP server that provides on-demand Javadoc/Scaladoc and source code for JVM dependencies. ## Goals - HTTP-based MCP server (shared across projects, efficient caching) - Two tools: `get_documentation` and `get_source` - Class-level granularity - Support both Javadoc and Scaladoc - Use Coursier for artifact resolution ## Scope ### In Scope - HTTP MCP transport with SSE - `get_documentation(coordinates, className)` - fetch and return Javadoc/Scaladoc HTML - `get_source(coordinates, className)` - fetch and return source file content - Coursier integration for fetching `-javadoc.jar` and `-sources.jar` - Basic error handling (artifact not found, class not found) ### Out of Scope (Future) - Markdown conversion of HTML docs - Project-aware dependency discovery (parsing build.sbt, pom.xml, etc.) - Method-level granularity - Package listing/navigation - Persistent caching (in-memory only for MVP) ## Technical Decisions - **Scala 3 with scala-cli** - **Coursier** for dependency resolution - **HTTP server** choice TBD (Tapir/http4s vs simpler options) - **MCP transport** HTTP with SSE for streaming ## Tasks Detailed analysis and task breakdown needed for: 1. MCP HTTP transport implementation 2. Coursier integration 3. JAR content extraction 4. Tool interface design 5. Error handling strategy 6. Testing approach ## Success Criteria - Claude Code can connect to the running server - Can successfully fetch Javadoc for a class like `cats.effect.IO` - Can successfully fetch source for the same class - Proper error messages for missing artifacts or classes
Sign in to join this conversation.
No description provided.