Enable markdown docs - #728

Closed
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs
Closed

Enable markdown docs#728
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs

Conversation

@jonathanhefner

@jonathanhefnerjonathanhefner commented Dec 16, 2025

Copy link
Copy Markdown
Member

Since javadoc generation has been fixed in #705, this PR adds configuration for supporting standalone markdown guides, and imports the existing markdown guides from https://github.com/modelcontextprotocol/modelcontextprotocol/tree/main/docs/sdk/java.

This PR is split into 4 commits:

  1. Add basic configuration to support markdown docs. Notably, this requires using JDK 23 to generate the docs; however, CI will still use JDK 17 to build the code.
  2. Import the markdown docs from modelcontextprotocol/modelcontextprotocol, convert React elements (e.g., <Tab>) to headered subsections.
  3. Restructure some of the information so that there is a single overview landing page and a separate "Getting Started" page that lists dependencies and BOM.
  4. Upgrade from JDK 23 to JDK 25 for javadoc generation in order to use the new --syntax-highlight option. I've kept this as a separate commit in case we prefer to stick with JDK 23 and look into other syntax highlighting approaches. However, I recommend we use JDK 25 because it is the simplest approach, and because it comes with additional style improvements for rendered markdown.

Screenshots:

Overview docServer doc (truncated)Client doc (truncated)
overviewserverclient
Getting Started docAPI docs treeMcpSyncServer API doc
getting-startedtreeMcpSyncServer

jonathanhefnerand others added 4 commits January 21, 2026 11:57
Add support for markdown documentation files (`overview.md`,
`doc-files/`) by configuring a JDK 23 toolchain for javadoc generation
while keeping JDK 17 as the build target.
- Add javadoc-toolchain profile that uses JDK 23 for markdown rendering
- Update CI workflows to set up both JDK 17 and JDK 23
- Add markdown `overview.md` as the javadoc landing page
- Add documentation for contributors on adding javadoc content
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Import and convert documentation from `modelcontextprotocol` repo:
- `sdk-overview.md`: Features, architecture, and dependencies
- `server.md`: Server implementation and transport providers
- `client.md`: Client implementation, transports, and capabilities
Conversions applied:
- MDX `<Tabs>`/`<Tab>` elements to markdown subsections
- `<Tip>`/`<Note>` callouts to blockquotes
- Internal links updated for javadoc doc-files structure
- Specification links to `modelcontextprotocol.io/specification/latest`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Merge Features and Architecture sections from `sdk-overview.md` into
`overview.md`
- Create `getting-started.md` with Dependency and BOM setup instructions
- Delete `sdk-overview.md` (content redistributed)
- Update links to point to `getting-started.html`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Upgrade javadoc toolchain from JDK 23 to JDK 25 to use the new
`--syntax-highlight` option, which bundles highlight.js for automatic
syntax highlighting of fenced code blocks in markdown documentation.
- Update `javadoc.jdk.version` from 23 to 25 in `pom.xml`
- Add `--syntax-highlight` option to maven-javadoc-plugin configuration
- Update CI workflows to set up JDK 25 for javadoc generation
- Update contributor documentation with syntax highlighting details
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@tzolov

Copy link
Copy Markdown
Contributor

Hey @jonathanhefner, thanks for taking the time to put this together!

We've been discussing the docs structure and decided to go with a dedicated docs folder approach instead (as mentioned in modelcontextprotocol/modelcontextprotocol#2144). It's more in line with what we're seeing across the other SDKs. Furthermore it is not common in Java to add the reference docs in the javadoc.

I've opened #796 to track the docs harmonization work. The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

@tzolovtzolov self-assigned this Feb 16, 2026
@tzolovtzolov added this to the 0.18.0 milestone Feb 16, 2026
@tzolov

Copy link
Copy Markdown
Contributor

@jonathanhefner

Copy link
Copy Markdown
MemberAuthor

The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

That works too! Whichever is easiest for you to maintain. 👍

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

I don't know the answer to that, but I would guess the top-level README because that's where most users will land.

Perhaps @felixweinberger can confirm?

@chemicLchemicL added the documentation Improvements or additions to documentation label Feb 17, 2026
@chemicLchemicL removed this from the 0.18.0 milestone Feb 17, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jonathanhefner@tzolov@chemicL
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Enable markdown docs - #728

Closed
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs
Closed

Enable markdown docs#728
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs

Conversation

@jonathanhefner

@jonathanhefnerjonathanhefner commented Dec 16, 2025

Copy link
Copy Markdown
Member

Since javadoc generation has been fixed in #705, this PR adds configuration for supporting standalone markdown guides, and imports the existing markdown guides from https://github.com/modelcontextprotocol/modelcontextprotocol/tree/main/docs/sdk/java.

This PR is split into 4 commits:

  1. Add basic configuration to support markdown docs. Notably, this requires using JDK 23 to generate the docs; however, CI will still use JDK 17 to build the code.
  2. Import the markdown docs from modelcontextprotocol/modelcontextprotocol, convert React elements (e.g., <Tab>) to headered subsections.
  3. Restructure some of the information so that there is a single overview landing page and a separate "Getting Started" page that lists dependencies and BOM.
  4. Upgrade from JDK 23 to JDK 25 for javadoc generation in order to use the new --syntax-highlight option. I've kept this as a separate commit in case we prefer to stick with JDK 23 and look into other syntax highlighting approaches. However, I recommend we use JDK 25 because it is the simplest approach, and because it comes with additional style improvements for rendered markdown.

Screenshots:

Overview docServer doc (truncated)Client doc (truncated)
overviewserverclient
Getting Started docAPI docs treeMcpSyncServer API doc
getting-startedtreeMcpSyncServer

jonathanhefnerand others added 4 commits January 21, 2026 11:57
Add support for markdown documentation files (`overview.md`,
`doc-files/`) by configuring a JDK 23 toolchain for javadoc generation
while keeping JDK 17 as the build target.
- Add javadoc-toolchain profile that uses JDK 23 for markdown rendering
- Update CI workflows to set up both JDK 17 and JDK 23
- Add markdown `overview.md` as the javadoc landing page
- Add documentation for contributors on adding javadoc content
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Import and convert documentation from `modelcontextprotocol` repo:
- `sdk-overview.md`: Features, architecture, and dependencies
- `server.md`: Server implementation and transport providers
- `client.md`: Client implementation, transports, and capabilities
Conversions applied:
- MDX `<Tabs>`/`<Tab>` elements to markdown subsections
- `<Tip>`/`<Note>` callouts to blockquotes
- Internal links updated for javadoc doc-files structure
- Specification links to `modelcontextprotocol.io/specification/latest`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Merge Features and Architecture sections from `sdk-overview.md` into
`overview.md`
- Create `getting-started.md` with Dependency and BOM setup instructions
- Delete `sdk-overview.md` (content redistributed)
- Update links to point to `getting-started.html`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Upgrade javadoc toolchain from JDK 23 to JDK 25 to use the new
`--syntax-highlight` option, which bundles highlight.js for automatic
syntax highlighting of fenced code blocks in markdown documentation.
- Update `javadoc.jdk.version` from 23 to 25 in `pom.xml`
- Add `--syntax-highlight` option to maven-javadoc-plugin configuration
- Update CI workflows to set up JDK 25 for javadoc generation
- Update contributor documentation with syntax highlighting details
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@tzolov

Copy link
Copy Markdown
Contributor

Hey @jonathanhefner, thanks for taking the time to put this together!

We've been discussing the docs structure and decided to go with a dedicated docs folder approach instead (as mentioned in modelcontextprotocol/modelcontextprotocol#2144). It's more in line with what we're seeing across the other SDKs. Furthermore it is not common in Java to add the reference docs in the javadoc.

I've opened #796 to track the docs harmonization work. The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

@tzolovtzolov self-assigned this Feb 16, 2026
@tzolovtzolov added this to the 0.18.0 milestone Feb 16, 2026
@tzolov

Copy link
Copy Markdown
Contributor

@jonathanhefner

Copy link
Copy Markdown
MemberAuthor

The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

That works too! Whichever is easiest for you to maintain. 👍

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

I don't know the answer to that, but I would guess the top-level README because that's where most users will land.

Perhaps @felixweinberger can confirm?

@chemicLchemicL added the documentation Improvements or additions to documentation label Feb 17, 2026
@chemicLchemicL removed this from the 0.18.0 milestone Feb 17, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jonathanhefner@tzolov@chemicL
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Enable markdown docs - #728

Closed
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs
Closed

Enable markdown docs#728
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs

Conversation

@jonathanhefner

@jonathanhefnerjonathanhefner commented Dec 16, 2025

Copy link
Copy Markdown
Member

Since javadoc generation has been fixed in #705, this PR adds configuration for supporting standalone markdown guides, and imports the existing markdown guides from https://github.com/modelcontextprotocol/modelcontextprotocol/tree/main/docs/sdk/java.

This PR is split into 4 commits:

  1. Add basic configuration to support markdown docs. Notably, this requires using JDK 23 to generate the docs; however, CI will still use JDK 17 to build the code.
  2. Import the markdown docs from modelcontextprotocol/modelcontextprotocol, convert React elements (e.g., <Tab>) to headered subsections.
  3. Restructure some of the information so that there is a single overview landing page and a separate "Getting Started" page that lists dependencies and BOM.
  4. Upgrade from JDK 23 to JDK 25 for javadoc generation in order to use the new --syntax-highlight option. I've kept this as a separate commit in case we prefer to stick with JDK 23 and look into other syntax highlighting approaches. However, I recommend we use JDK 25 because it is the simplest approach, and because it comes with additional style improvements for rendered markdown.

Screenshots:

Overview docServer doc (truncated)Client doc (truncated)
overviewserverclient
Getting Started docAPI docs treeMcpSyncServer API doc
getting-startedtreeMcpSyncServer

jonathanhefnerand others added 4 commits January 21, 2026 11:57
Add support for markdown documentation files (`overview.md`,
`doc-files/`) by configuring a JDK 23 toolchain for javadoc generation
while keeping JDK 17 as the build target.
- Add javadoc-toolchain profile that uses JDK 23 for markdown rendering
- Update CI workflows to set up both JDK 17 and JDK 23
- Add markdown `overview.md` as the javadoc landing page
- Add documentation for contributors on adding javadoc content
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Import and convert documentation from `modelcontextprotocol` repo:
- `sdk-overview.md`: Features, architecture, and dependencies
- `server.md`: Server implementation and transport providers
- `client.md`: Client implementation, transports, and capabilities
Conversions applied:
- MDX `<Tabs>`/`<Tab>` elements to markdown subsections
- `<Tip>`/`<Note>` callouts to blockquotes
- Internal links updated for javadoc doc-files structure
- Specification links to `modelcontextprotocol.io/specification/latest`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Merge Features and Architecture sections from `sdk-overview.md` into
`overview.md`
- Create `getting-started.md` with Dependency and BOM setup instructions
- Delete `sdk-overview.md` (content redistributed)
- Update links to point to `getting-started.html`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Upgrade javadoc toolchain from JDK 23 to JDK 25 to use the new
`--syntax-highlight` option, which bundles highlight.js for automatic
syntax highlighting of fenced code blocks in markdown documentation.
- Update `javadoc.jdk.version` from 23 to 25 in `pom.xml`
- Add `--syntax-highlight` option to maven-javadoc-plugin configuration
- Update CI workflows to set up JDK 25 for javadoc generation
- Update contributor documentation with syntax highlighting details
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@tzolov

Copy link
Copy Markdown
Contributor

Hey @jonathanhefner, thanks for taking the time to put this together!

We've been discussing the docs structure and decided to go with a dedicated docs folder approach instead (as mentioned in modelcontextprotocol/modelcontextprotocol#2144). It's more in line with what we're seeing across the other SDKs. Furthermore it is not common in Java to add the reference docs in the javadoc.

I've opened #796 to track the docs harmonization work. The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

@tzolovtzolov self-assigned this Feb 16, 2026
@tzolovtzolov added this to the 0.18.0 milestone Feb 16, 2026
@tzolov

Copy link
Copy Markdown
Contributor

@jonathanhefner

Copy link
Copy Markdown
MemberAuthor

The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

That works too! Whichever is easiest for you to maintain. 👍

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

I don't know the answer to that, but I would guess the top-level README because that's where most users will land.

Perhaps @felixweinberger can confirm?

@chemicLchemicL added the documentation Improvements or additions to documentation label Feb 17, 2026
@chemicLchemicL removed this from the 0.18.0 milestone Feb 17, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jonathanhefner@tzolov@chemicL
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Enable markdown docs - #728

Closed
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs
Closed

Enable markdown docs#728
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs

Conversation

@jonathanhefner

@jonathanhefnerjonathanhefner commented Dec 16, 2025

Copy link
Copy Markdown
Member

Since javadoc generation has been fixed in #705, this PR adds configuration for supporting standalone markdown guides, and imports the existing markdown guides from https://github.com/modelcontextprotocol/modelcontextprotocol/tree/main/docs/sdk/java.

This PR is split into 4 commits:

  1. Add basic configuration to support markdown docs. Notably, this requires using JDK 23 to generate the docs; however, CI will still use JDK 17 to build the code.
  2. Import the markdown docs from modelcontextprotocol/modelcontextprotocol, convert React elements (e.g., <Tab>) to headered subsections.
  3. Restructure some of the information so that there is a single overview landing page and a separate "Getting Started" page that lists dependencies and BOM.
  4. Upgrade from JDK 23 to JDK 25 for javadoc generation in order to use the new --syntax-highlight option. I've kept this as a separate commit in case we prefer to stick with JDK 23 and look into other syntax highlighting approaches. However, I recommend we use JDK 25 because it is the simplest approach, and because it comes with additional style improvements for rendered markdown.

Screenshots:

Overview docServer doc (truncated)Client doc (truncated)
overviewserverclient
Getting Started docAPI docs treeMcpSyncServer API doc
getting-startedtreeMcpSyncServer

jonathanhefnerand others added 4 commits January 21, 2026 11:57
Add support for markdown documentation files (`overview.md`,
`doc-files/`) by configuring a JDK 23 toolchain for javadoc generation
while keeping JDK 17 as the build target.
- Add javadoc-toolchain profile that uses JDK 23 for markdown rendering
- Update CI workflows to set up both JDK 17 and JDK 23
- Add markdown `overview.md` as the javadoc landing page
- Add documentation for contributors on adding javadoc content
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Import and convert documentation from `modelcontextprotocol` repo:
- `sdk-overview.md`: Features, architecture, and dependencies
- `server.md`: Server implementation and transport providers
- `client.md`: Client implementation, transports, and capabilities
Conversions applied:
- MDX `<Tabs>`/`<Tab>` elements to markdown subsections
- `<Tip>`/`<Note>` callouts to blockquotes
- Internal links updated for javadoc doc-files structure
- Specification links to `modelcontextprotocol.io/specification/latest`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Merge Features and Architecture sections from `sdk-overview.md` into
`overview.md`
- Create `getting-started.md` with Dependency and BOM setup instructions
- Delete `sdk-overview.md` (content redistributed)
- Update links to point to `getting-started.html`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Upgrade javadoc toolchain from JDK 23 to JDK 25 to use the new
`--syntax-highlight` option, which bundles highlight.js for automatic
syntax highlighting of fenced code blocks in markdown documentation.
- Update `javadoc.jdk.version` from 23 to 25 in `pom.xml`
- Add `--syntax-highlight` option to maven-javadoc-plugin configuration
- Update CI workflows to set up JDK 25 for javadoc generation
- Update contributor documentation with syntax highlighting details
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@tzolov

Copy link
Copy Markdown
Contributor

Hey @jonathanhefner, thanks for taking the time to put this together!

We've been discussing the docs structure and decided to go with a dedicated docs folder approach instead (as mentioned in modelcontextprotocol/modelcontextprotocol#2144). It's more in line with what we're seeing across the other SDKs. Furthermore it is not common in Java to add the reference docs in the javadoc.

I've opened #796 to track the docs harmonization work. The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

@tzolovtzolov self-assigned this Feb 16, 2026
@tzolovtzolov added this to the 0.18.0 milestone Feb 16, 2026
@tzolov

Copy link
Copy Markdown
Contributor

@jonathanhefner

Copy link
Copy Markdown
MemberAuthor

The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

That works too! Whichever is easiest for you to maintain. 👍

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

I don't know the answer to that, but I would guess the top-level README because that's where most users will land.

Perhaps @felixweinberger can confirm?

@chemicLchemicL added the documentation Improvements or additions to documentation label Feb 17, 2026
@chemicLchemicL removed this from the 0.18.0 milestone Feb 17, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jonathanhefner@tzolov@chemicL
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Enable markdown docs - #728

Closed
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs
Closed

Enable markdown docs#728
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs

Conversation

@jonathanhefner

@jonathanhefnerjonathanhefner commented Dec 16, 2025

Copy link
Copy Markdown
Member

Since javadoc generation has been fixed in #705, this PR adds configuration for supporting standalone markdown guides, and imports the existing markdown guides from https://github.com/modelcontextprotocol/modelcontextprotocol/tree/main/docs/sdk/java.

This PR is split into 4 commits:

  1. Add basic configuration to support markdown docs. Notably, this requires using JDK 23 to generate the docs; however, CI will still use JDK 17 to build the code.
  2. Import the markdown docs from modelcontextprotocol/modelcontextprotocol, convert React elements (e.g., <Tab>) to headered subsections.
  3. Restructure some of the information so that there is a single overview landing page and a separate "Getting Started" page that lists dependencies and BOM.
  4. Upgrade from JDK 23 to JDK 25 for javadoc generation in order to use the new --syntax-highlight option. I've kept this as a separate commit in case we prefer to stick with JDK 23 and look into other syntax highlighting approaches. However, I recommend we use JDK 25 because it is the simplest approach, and because it comes with additional style improvements for rendered markdown.

Screenshots:

Overview docServer doc (truncated)Client doc (truncated)
overviewserverclient
Getting Started docAPI docs treeMcpSyncServer API doc
getting-startedtreeMcpSyncServer

jonathanhefnerand others added 4 commits January 21, 2026 11:57
Add support for markdown documentation files (`overview.md`,
`doc-files/`) by configuring a JDK 23 toolchain for javadoc generation
while keeping JDK 17 as the build target.
- Add javadoc-toolchain profile that uses JDK 23 for markdown rendering
- Update CI workflows to set up both JDK 17 and JDK 23
- Add markdown `overview.md` as the javadoc landing page
- Add documentation for contributors on adding javadoc content
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Import and convert documentation from `modelcontextprotocol` repo:
- `sdk-overview.md`: Features, architecture, and dependencies
- `server.md`: Server implementation and transport providers
- `client.md`: Client implementation, transports, and capabilities
Conversions applied:
- MDX `<Tabs>`/`<Tab>` elements to markdown subsections
- `<Tip>`/`<Note>` callouts to blockquotes
- Internal links updated for javadoc doc-files structure
- Specification links to `modelcontextprotocol.io/specification/latest`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Merge Features and Architecture sections from `sdk-overview.md` into
`overview.md`
- Create `getting-started.md` with Dependency and BOM setup instructions
- Delete `sdk-overview.md` (content redistributed)
- Update links to point to `getting-started.html`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Upgrade javadoc toolchain from JDK 23 to JDK 25 to use the new
`--syntax-highlight` option, which bundles highlight.js for automatic
syntax highlighting of fenced code blocks in markdown documentation.
- Update `javadoc.jdk.version` from 23 to 25 in `pom.xml`
- Add `--syntax-highlight` option to maven-javadoc-plugin configuration
- Update CI workflows to set up JDK 25 for javadoc generation
- Update contributor documentation with syntax highlighting details
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@tzolov

Copy link
Copy Markdown
Contributor

Hey @jonathanhefner, thanks for taking the time to put this together!

We've been discussing the docs structure and decided to go with a dedicated docs folder approach instead (as mentioned in modelcontextprotocol/modelcontextprotocol#2144). It's more in line with what we're seeing across the other SDKs. Furthermore it is not common in Java to add the reference docs in the javadoc.

I've opened #796 to track the docs harmonization work. The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

@tzolovtzolov self-assigned this Feb 16, 2026
@tzolovtzolov added this to the 0.18.0 milestone Feb 16, 2026
@tzolov

Copy link
Copy Markdown
Contributor

@jonathanhefner

Copy link
Copy Markdown
MemberAuthor

The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

That works too! Whichever is easiest for you to maintain. 👍

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

I don't know the answer to that, but I would guess the top-level README because that's where most users will land.

Perhaps @felixweinberger can confirm?

@chemicLchemicL added the documentation Improvements or additions to documentation label Feb 17, 2026
@chemicLchemicL removed this from the 0.18.0 milestone Feb 17, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jonathanhefner@tzolov@chemicL
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Enable markdown docs - #728

Closed
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs
Closed

Enable markdown docs#728
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs

Conversation

@jonathanhefner

@jonathanhefnerjonathanhefner commented Dec 16, 2025

Copy link
Copy Markdown
Member

Since javadoc generation has been fixed in #705, this PR adds configuration for supporting standalone markdown guides, and imports the existing markdown guides from https://github.com/modelcontextprotocol/modelcontextprotocol/tree/main/docs/sdk/java.

This PR is split into 4 commits:

  1. Add basic configuration to support markdown docs. Notably, this requires using JDK 23 to generate the docs; however, CI will still use JDK 17 to build the code.
  2. Import the markdown docs from modelcontextprotocol/modelcontextprotocol, convert React elements (e.g., <Tab>) to headered subsections.
  3. Restructure some of the information so that there is a single overview landing page and a separate "Getting Started" page that lists dependencies and BOM.
  4. Upgrade from JDK 23 to JDK 25 for javadoc generation in order to use the new --syntax-highlight option. I've kept this as a separate commit in case we prefer to stick with JDK 23 and look into other syntax highlighting approaches. However, I recommend we use JDK 25 because it is the simplest approach, and because it comes with additional style improvements for rendered markdown.

Screenshots:

Overview docServer doc (truncated)Client doc (truncated)
overviewserverclient
Getting Started docAPI docs treeMcpSyncServer API doc
getting-startedtreeMcpSyncServer

jonathanhefnerand others added 4 commits January 21, 2026 11:57
Add support for markdown documentation files (`overview.md`,
`doc-files/`) by configuring a JDK 23 toolchain for javadoc generation
while keeping JDK 17 as the build target.
- Add javadoc-toolchain profile that uses JDK 23 for markdown rendering
- Update CI workflows to set up both JDK 17 and JDK 23
- Add markdown `overview.md` as the javadoc landing page
- Add documentation for contributors on adding javadoc content
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Import and convert documentation from `modelcontextprotocol` repo:
- `sdk-overview.md`: Features, architecture, and dependencies
- `server.md`: Server implementation and transport providers
- `client.md`: Client implementation, transports, and capabilities
Conversions applied:
- MDX `<Tabs>`/`<Tab>` elements to markdown subsections
- `<Tip>`/`<Note>` callouts to blockquotes
- Internal links updated for javadoc doc-files structure
- Specification links to `modelcontextprotocol.io/specification/latest`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Merge Features and Architecture sections from `sdk-overview.md` into
`overview.md`
- Create `getting-started.md` with Dependency and BOM setup instructions
- Delete `sdk-overview.md` (content redistributed)
- Update links to point to `getting-started.html`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Upgrade javadoc toolchain from JDK 23 to JDK 25 to use the new
`--syntax-highlight` option, which bundles highlight.js for automatic
syntax highlighting of fenced code blocks in markdown documentation.
- Update `javadoc.jdk.version` from 23 to 25 in `pom.xml`
- Add `--syntax-highlight` option to maven-javadoc-plugin configuration
- Update CI workflows to set up JDK 25 for javadoc generation
- Update contributor documentation with syntax highlighting details
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@tzolov

Copy link
Copy Markdown
Contributor

Hey @jonathanhefner, thanks for taking the time to put this together!

We've been discussing the docs structure and decided to go with a dedicated docs folder approach instead (as mentioned in modelcontextprotocol/modelcontextprotocol#2144). It's more in line with what we're seeing across the other SDKs. Furthermore it is not common in Java to add the reference docs in the javadoc.

I've opened #796 to track the docs harmonization work. The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

@tzolovtzolov self-assigned this Feb 16, 2026
@tzolovtzolov added this to the 0.18.0 milestone Feb 16, 2026
@tzolov

Copy link
Copy Markdown
Contributor

@jonathanhefner

Copy link
Copy Markdown
MemberAuthor

The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

That works too! Whichever is easiest for you to maintain. 👍

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

I don't know the answer to that, but I would guess the top-level README because that's where most users will land.

Perhaps @felixweinberger can confirm?

@chemicLchemicL added the documentation Improvements or additions to documentation label Feb 17, 2026
@chemicLchemicL removed this from the 0.18.0 milestone Feb 17, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jonathanhefner@tzolov@chemicL
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Enable markdown docs - #728

Closed
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs
Closed

Enable markdown docs#728
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs

Conversation

@jonathanhefner

@jonathanhefnerjonathanhefner commented Dec 16, 2025

Copy link
Copy Markdown
Member

Since javadoc generation has been fixed in #705, this PR adds configuration for supporting standalone markdown guides, and imports the existing markdown guides from https://github.com/modelcontextprotocol/modelcontextprotocol/tree/main/docs/sdk/java.

This PR is split into 4 commits:

  1. Add basic configuration to support markdown docs. Notably, this requires using JDK 23 to generate the docs; however, CI will still use JDK 17 to build the code.
  2. Import the markdown docs from modelcontextprotocol/modelcontextprotocol, convert React elements (e.g., <Tab>) to headered subsections.
  3. Restructure some of the information so that there is a single overview landing page and a separate "Getting Started" page that lists dependencies and BOM.
  4. Upgrade from JDK 23 to JDK 25 for javadoc generation in order to use the new --syntax-highlight option. I've kept this as a separate commit in case we prefer to stick with JDK 23 and look into other syntax highlighting approaches. However, I recommend we use JDK 25 because it is the simplest approach, and because it comes with additional style improvements for rendered markdown.

Screenshots:

Overview docServer doc (truncated)Client doc (truncated)
overviewserverclient
Getting Started docAPI docs treeMcpSyncServer API doc
getting-startedtreeMcpSyncServer

jonathanhefnerand others added 4 commits January 21, 2026 11:57
Add support for markdown documentation files (`overview.md`,
`doc-files/`) by configuring a JDK 23 toolchain for javadoc generation
while keeping JDK 17 as the build target.
- Add javadoc-toolchain profile that uses JDK 23 for markdown rendering
- Update CI workflows to set up both JDK 17 and JDK 23
- Add markdown `overview.md` as the javadoc landing page
- Add documentation for contributors on adding javadoc content
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Import and convert documentation from `modelcontextprotocol` repo:
- `sdk-overview.md`: Features, architecture, and dependencies
- `server.md`: Server implementation and transport providers
- `client.md`: Client implementation, transports, and capabilities
Conversions applied:
- MDX `<Tabs>`/`<Tab>` elements to markdown subsections
- `<Tip>`/`<Note>` callouts to blockquotes
- Internal links updated for javadoc doc-files structure
- Specification links to `modelcontextprotocol.io/specification/latest`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Merge Features and Architecture sections from `sdk-overview.md` into
`overview.md`
- Create `getting-started.md` with Dependency and BOM setup instructions
- Delete `sdk-overview.md` (content redistributed)
- Update links to point to `getting-started.html`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Upgrade javadoc toolchain from JDK 23 to JDK 25 to use the new
`--syntax-highlight` option, which bundles highlight.js for automatic
syntax highlighting of fenced code blocks in markdown documentation.
- Update `javadoc.jdk.version` from 23 to 25 in `pom.xml`
- Add `--syntax-highlight` option to maven-javadoc-plugin configuration
- Update CI workflows to set up JDK 25 for javadoc generation
- Update contributor documentation with syntax highlighting details
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@tzolov

Copy link
Copy Markdown
Contributor

Hey @jonathanhefner, thanks for taking the time to put this together!

We've been discussing the docs structure and decided to go with a dedicated docs folder approach instead (as mentioned in modelcontextprotocol/modelcontextprotocol#2144). It's more in line with what we're seeing across the other SDKs. Furthermore it is not common in Java to add the reference docs in the javadoc.

I've opened #796 to track the docs harmonization work. The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

@tzolovtzolov self-assigned this Feb 16, 2026
@tzolovtzolov added this to the 0.18.0 milestone Feb 16, 2026
@tzolov

Copy link
Copy Markdown
Contributor

@jonathanhefner

Copy link
Copy Markdown
MemberAuthor

The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

That works too! Whichever is easiest for you to maintain. 👍

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

I don't know the answer to that, but I would guess the top-level README because that's where most users will land.

Perhaps @felixweinberger can confirm?

@chemicLchemicL added the documentation Improvements or additions to documentation label Feb 17, 2026
@chemicLchemicL removed this from the 0.18.0 milestone Feb 17, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jonathanhefner@tzolov@chemicL
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Enable markdown docs - #728

Closed
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs
Closed

Enable markdown docs#728
jonathanhefner wants to merge 4 commits into
modelcontextprotocol:mainfrom
jonathanhefner:enable-markdown-docs

Conversation

@jonathanhefner

@jonathanhefnerjonathanhefner commented Dec 16, 2025

Copy link
Copy Markdown
Member

Since javadoc generation has been fixed in #705, this PR adds configuration for supporting standalone markdown guides, and imports the existing markdown guides from https://github.com/modelcontextprotocol/modelcontextprotocol/tree/main/docs/sdk/java.

This PR is split into 4 commits:

  1. Add basic configuration to support markdown docs. Notably, this requires using JDK 23 to generate the docs; however, CI will still use JDK 17 to build the code.
  2. Import the markdown docs from modelcontextprotocol/modelcontextprotocol, convert React elements (e.g., <Tab>) to headered subsections.
  3. Restructure some of the information so that there is a single overview landing page and a separate "Getting Started" page that lists dependencies and BOM.
  4. Upgrade from JDK 23 to JDK 25 for javadoc generation in order to use the new --syntax-highlight option. I've kept this as a separate commit in case we prefer to stick with JDK 23 and look into other syntax highlighting approaches. However, I recommend we use JDK 25 because it is the simplest approach, and because it comes with additional style improvements for rendered markdown.

Screenshots:

Overview docServer doc (truncated)Client doc (truncated)
overviewserverclient
Getting Started docAPI docs treeMcpSyncServer API doc
getting-startedtreeMcpSyncServer

jonathanhefnerand others added 4 commits January 21, 2026 11:57
Add support for markdown documentation files (`overview.md`,
`doc-files/`) by configuring a JDK 23 toolchain for javadoc generation
while keeping JDK 17 as the build target.
- Add javadoc-toolchain profile that uses JDK 23 for markdown rendering
- Update CI workflows to set up both JDK 17 and JDK 23
- Add markdown `overview.md` as the javadoc landing page
- Add documentation for contributors on adding javadoc content
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Import and convert documentation from `modelcontextprotocol` repo:
- `sdk-overview.md`: Features, architecture, and dependencies
- `server.md`: Server implementation and transport providers
- `client.md`: Client implementation, transports, and capabilities
Conversions applied:
- MDX `<Tabs>`/`<Tab>` elements to markdown subsections
- `<Tip>`/`<Note>` callouts to blockquotes
- Internal links updated for javadoc doc-files structure
- Specification links to `modelcontextprotocol.io/specification/latest`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Merge Features and Architecture sections from `sdk-overview.md` into
`overview.md`
- Create `getting-started.md` with Dependency and BOM setup instructions
- Delete `sdk-overview.md` (content redistributed)
- Update links to point to `getting-started.html`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Upgrade javadoc toolchain from JDK 23 to JDK 25 to use the new
`--syntax-highlight` option, which bundles highlight.js for automatic
syntax highlighting of fenced code blocks in markdown documentation.
- Update `javadoc.jdk.version` from 23 to 25 in `pom.xml`
- Add `--syntax-highlight` option to maven-javadoc-plugin configuration
- Update CI workflows to set up JDK 25 for javadoc generation
- Update contributor documentation with syntax highlighting details
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@tzolov

Copy link
Copy Markdown
Contributor

Hey @jonathanhefner, thanks for taking the time to put this together!

We've been discussing the docs structure and decided to go with a dedicated docs folder approach instead (as mentioned in modelcontextprotocol/modelcontextprotocol#2144). It's more in line with what we're seeing across the other SDKs. Furthermore it is not common in Java to add the reference docs in the javadoc.

I've opened #796 to track the docs harmonization work. The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

@tzolovtzolov self-assigned this Feb 16, 2026
@tzolovtzolov added this to the 0.18.0 milestone Feb 16, 2026
@tzolov

Copy link
Copy Markdown
Contributor

@jonathanhefner

Copy link
Copy Markdown
MemberAuthor

The reference docs are already being auto-generated and published at https://modelcontextprotocol.github.io/java-sdk/

That works too! Whichever is easiest for you to maintain. 👍

Quick question though - when #2144 mentions adding the conformance score to the README, does that mean the project's top-level README, or should there be a separate one in the docs folder?

I don't know the answer to that, but I would guess the top-level README because that's where most users will land.

Perhaps @felixweinberger can confirm?

@chemicLchemicL added the documentation Improvements or additions to documentation label Feb 17, 2026
@chemicLchemicL removed this from the 0.18.0 milestone Feb 17, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jonathanhefner@tzolov@chemicL