Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
188 commits
Select commit Hold shift + click to select a range
27b419c
test: Add basic authentication integration tests for SSE transport (#…
kpavlov Feb 26, 2026
43b59c9
fix: SseTransport endpoint resolution (#329) (#565)
Amaneusz Feb 26, 2026
ec53adc
feat: introduce StreamableHttpServerTransport.Configuration (#560)
kpavlov Feb 26, 2026
8a9922b
chore(deps): bump actions/upload-artifact from 6 to 7
dependabot[bot] Mar 2, 2026
e124262
chore(deps): bump actions/download-artifact from 7 to 8
dependabot[bot] Mar 2, 2026
45fcc17
doc: update API reference URL in README.md (#578)
kpavlov Mar 2, 2026
c368812
ci: add Codecov coverage upload and XML report generation (#579)
kpavlov Mar 2, 2026
eb94f14
chore(deps): bump dev.mokksy:mokksy from 0.6.2 to 0.8.0 (#557)
dependabot[bot] Mar 2, 2026
66d31d3
ci: update Codecov configuration for test and coverage upload (#580)
kpavlov Mar 2, 2026
9eabb54
refactor: refactor Streamable HTTP ktor extensions (#562) (#568)
kpavlov Mar 3, 2026
a388180
fix!(server): #575 Rethrow CancellationException in StdioServerTransp…
kpavlov Mar 3, 2026
3e7ea39
chore: relax Detekt rules for tests (#582)
kpavlov Mar 3, 2026
1454229
test: add serialization tests and guidelines for handling `null` and …
kpavlov Mar 4, 2026
5b58814
feat: bump version to 0.9.0 (#576)
Amaneusz Mar 5, 2026
0b39f57
docs: streamable server sample (#595)
devcrocod Mar 10, 2026
338f948
feat: add tool execution properties to Tool (#567)
devcrocod Mar 10, 2026
e88b341
feat!: add mcp conformance test infra (#585); add SSE reconnection wi…
devcrocod Mar 12, 2026
736efe9
fix(server): notifications not delivered over Streamable HTTP (#587) …
kpavlov Mar 12, 2026
4ecd952
fix(conformance): correct SEP-1330 enum schemas in test_elicitation_s…
kpavlov Mar 12, 2026
921b1fd
docs: update client and server samples (#598)
devcrocod Mar 13, 2026
cf4e2e4
feat: implement Enterprise Managed Authorization (SEP-990)
prachi-okta Feb 27, 2026
8c26488
feat(auth): enterprise auth provider changes
prachi-okta Mar 17, 2026
bb4aff3
fix: re-throw CancellationException, internal set on expiresAt, data …
prachi-okta Mar 17, 2026
c136ad9
docs: context7 config file (#605)
devcrocod Mar 17, 2026
16dcc97
test: improve coverage for auth models and EnterpriseAuthProvider edg…
prachi-okta Mar 18, 2026
4cfc719
fix: align conformance scenarios with existing pattern (followRedirec…
prachi-okta Mar 18, 2026
2542c9c
feat: add mcp documentation skill for spec-aware development (#609)
devcrocod Mar 18, 2026
ee6561c
feat: #502 resource templates with basic template matcher (#606)
kpavlov Mar 19, 2026
62e4e50
docs: update AGENTS.md (#612)
devcrocod Mar 20, 2026
fd3a858
feat: add tasks models (#566)
devcrocod Mar 20, 2026
55afb63
chore(deps): bump gradle-wrapper from 9.3.1 to 9.4.1 (#614)
dependabot[bot] Mar 23, 2026
85d92e3
fix: redact clientSecret, idToken and assertion from options toString()
prachi-okta Mar 25, 2026
5583990
chore: deprecation cycle (#615)
devcrocod Mar 26, 2026
435698a
refactor(integration-test): modernize ts tests, update versions, rena…
devcrocod Mar 26, 2026
cd91eed
chore: simplify and clean up CI workflows (#617)
devcrocod Mar 26, 2026
c77ebe0
refactor(core): Fix Kotlin language and api version to 2.1 in build c…
kpavlov Mar 26, 2026
bd4cf0c
docs: add missing KDoc comments for public functions, properties, and…
kpavlov Mar 26, 2026
961b29b
chore: bump project version to 0.10.0 in gradle.properties (#623)
kpavlov Mar 26, 2026
01689cc
chore: improve dependabot configuration (#619)
devcrocod Mar 26, 2026
681e7e8
chore(deps): bump the gradle-plugins group with 4 updates (#633)
dependabot[bot] Mar 26, 2026
aed2439
chore(deps): bump the infrastructure group with 2 updates (#632)
dependabot[bot] Mar 26, 2026
1cda704
chore(deps): bump the all-actions group with 3 updates (#631)
dependabot[bot] Mar 26, 2026
0e1eef3
chore(deps): bump the all-dependencies group across 1 directory with …
dependabot[bot] Mar 27, 2026
4a82d20
chore(deps): bump the other-dependencies group across 4 directories w…
dependabot[bot] Mar 27, 2026
2b7e754
chore: remove deprecated macosX64 target (#625)
devcrocod Mar 27, 2026
b946e4e
chore(deps): bump mcp-kotlin from 0.8.1 to 0.9.0 in /samples/kotlin-m…
dependabot[bot] Mar 27, 2026
0d97b82
chore(deps): bump the kotest group with 3 updates (#629)
dependabot[bot] Mar 27, 2026
e7687c7
chore(deps): bump the testing group across 1 directory with 2 updates…
dependabot[bot] Mar 27, 2026
9c0aa45
fix: reject duplicate initialize requests in ServerSession (#624)
devcrocod Mar 27, 2026
d60b0a2
chore: #608 update kotlin and kotlinx versions (#611)
devcrocod Mar 27, 2026
0042c74
chore(deps): bump org.jetbrains.kotlinx:atomicfu-gradle-plugin from 0…
dependabot[bot] Mar 27, 2026
f10e475
refactor: move enterprise auth to standalone kotlin-sdk-client-enterp…
prachi-okta Mar 30, 2026
d5337d4
chore(deps): bump modelcontextprotocol/conformance from 0.1.15 to 0.1…
dependabot[bot] Mar 30, 2026
7ed57f9
chore(deps): bump mcp-kotlin from 0.9.0 to 0.10.0 in /samples/weather…
dependabot[bot] Mar 30, 2026
384064e
chore(deps): bump the other-dependencies group across 4 directories w…
dependabot[bot] Mar 30, 2026
c46f53a
chore(deps): bump path-to-regexp from 8.3.0 to 8.4.0 in /integration-…
dependabot[bot] Mar 30, 2026
7a95cb7
chore(deps): bump io.ktor:ktor-bom from 3.2.3 to 3.3.3 in /samples/ko…
dependabot[bot] Mar 30, 2026
6e247f9
chore(deps): bump mcp-kotlin from 0.9.0 to 0.10.0 in /samples/kotlin-…
dependabot[bot] Mar 30, 2026
ad07232
samples: update mcp-kotlin to 0.10.0 across sample projects (#645)
kpavlov Mar 30, 2026
fdecf6b
feat: add URL mode elicitation and typed schema definitions per MCP (…
devcrocod Apr 1, 2026
6ce9ff8
feat(server): support configurable max request payload size (#646)
jskjw157 Apr 1, 2026
9c4a239
test: remove `Ignore` for SseTransportTest and refactor (#662)
devcrocod Apr 1, 2026
e21d229
fix: apply elicitation schema defaults for missing fields in client r…
devcrocod Apr 1, 2026
3617ce4
feat(server): auto-install ContentNegotiation with McpJson (#664) (#665)
kpavlov Apr 2, 2026
e5e5ec2
feat: add notification for elicitation complete (#667)
devcrocod Apr 2, 2026
33923bc
feat(docs): public api kdocs (#658)
devcrocod Apr 2, 2026
c470c5d
chore: bump project version to 0.11.0 (#669)
kpavlov Apr 2, 2026
0ab31cf
chore(deps): bump io.ktor:ktor-bom from 3.2.3 to 3.3.3 in /samples/we…
dependabot[bot] Apr 6, 2026
f8f04d6
chore(deps): bump io.ktor:ktor-bom from 3.2.3 to 3.3.3 in /samples/si…
dependabot[bot] Apr 6, 2026
7cf65c6
chore(deps): bump the all-dependencies group in /integration-test/src…
dependabot[bot] Apr 6, 2026
f0f8b30
chore(deps): bump mcp-kotlin from 0.10.0 to 0.11.0 in /samples/weathe…
dependabot[bot] Apr 7, 2026
7c87ed1
chore(deps): bump the kotest group with 3 updates (#674)
dependabot[bot] Apr 7, 2026
3f7f499
chore(deps): bump mcp-kotlin from 0.10.0 to 0.11.0 in /samples/kotlin…
dependabot[bot] Apr 7, 2026
4144db6
chore(deps): bump io.modelcontextprotocol:kotlin-sdk-client from 0.10…
dependabot[bot] Apr 7, 2026
20ac69f
chore(deps): bump mcp-kotlin from 0.10.0 to 0.11.0 in /samples/simple…
dependabot[bot] Apr 7, 2026
8442ab8
chore(deps): bump com.anthropic:anthropic-java from 2.18.0 to 2.19.0 …
dependabot[bot] Apr 7, 2026
66d1795
chore(deps): bump @hono/node-server from 1.19.11 to 1.19.13 in /integ…
dependabot[bot] Apr 8, 2026
12171dc
chore(deps): bump hono from 4.12.9 to 4.12.12 in /integration-test/sr…
dependabot[bot] Apr 8, 2026
cceca4d
chore(deps): bump io.ktor:ktor-bom from 3.2.3 to 3.3.3 in /samples/ko…
dependabot[bot] Apr 8, 2026
8a7f9f8
fix(server): GET SSE stream crash on Netty in Streamable HTTP (#681)
devcrocod Apr 10, 2026
f02f5d3
release: bump mcp kotlin-sdk version to 0.11.1 (#682)
devcrocod Apr 10, 2026
36c0f4f
chore(deps): bump @types/node from 25.5.2 to 25.6.0 in /integration-t…
dependabot[bot] Apr 13, 2026
1734a64
chore(deps): bump dependabot/fetch-metadata from 2 to 3 in the all-ac…
dependabot[bot] Apr 13, 2026
c18a488
fix(ci): add node setup in release workflow (#684)
devcrocod Apr 13, 2026
1d02ae8
chore(build): remove openapi generator (#683)
devcrocod Apr 13, 2026
6ce534d
chore(deps): bump com.anthropic:anthropic-java from 2.19.0 to 2.24.0 …
dependabot[bot] Apr 13, 2026
081a635
chore(ci): remove codecov (#691)
devcrocod Apr 14, 2026
61fab2f
feat: add $schema field to ToolSchema per SEP-1613 (#696)
devcrocod Apr 14, 2026
e74ef2d
feat(server): add tool name validation per SEP-986 (#695)
devcrocod Apr 14, 2026
2fb3393
chore(deps): bump com.anthropic:anthropic-java from 2.24.0 to 2.25.0 …
dependabot[bot] Apr 14, 2026
9981a7b
chore(deps): bump io.modelcontextprotocol:kotlin-sdk-client from 0.11…
dependabot[bot] Apr 14, 2026
ba265a5
chore(deps): bump mcp-kotlin from 0.11.0 to 0.11.1 in /samples/kotlin…
dependabot[bot] Apr 14, 2026
2d23827
chore(deps): bump mcp-kotlin from 0.11.0 to 0.11.1 in /samples/simple…
dependabot[bot] Apr 14, 2026
eb24803
chore(deps): bump mcp-kotlin from 0.11.0 to 0.11.1 in /samples/weathe…
dependabot[bot] Apr 14, 2026
bce6811
fix: validate protocol version header on initialization requests (#697)
devcrocod Apr 15, 2026
e7b09d8
fix: propagate CancellationException instead of logging as error (#706)
devcrocod Apr 15, 2026
8e87cd8
chore(deps): bump the kotlin group across 1 directory with 2 updates …
dependabot[bot] Apr 15, 2026
c6e6f7c
chore(deps): bump org.jetbrains.kotlinx:kotlinx-serialization-json fr…
dependabot[bot] Apr 15, 2026
c1f0450
chore(deps): bump hono from 4.12.12 to 4.12.14 in /integration-test/s…
dependabot[bot] Apr 16, 2026
74cda2e
chore(deps): bump com.anthropic:anthropic-java from 2.25.0 to 2.26.0 …
dependabot[bot] Apr 20, 2026
1d21fa8
chore(deps): bump actions/upload-pages-artifact from 4 to 5 in the al…
dependabot[bot] Apr 21, 2026
f6ad332
chore(deps): bump typescript from 6.0.2 to 6.0.3 in /integration-test…
dependabot[bot] Apr 21, 2026
bf8dc6d
feat(core): add extensions field to ClientCapabilities and ServerCapa…
eritscher Apr 23, 2026
c946dfc
sample: kotlinlang mcp server (#713)
devcrocod Apr 27, 2026
18f4c47
chore: remove idea files related to detekt (#714)
devcrocod Apr 27, 2026
5b4ea4b
chore(deps): bump the kotlin group across 1 directory with 2 updates …
dependabot[bot] Apr 27, 2026
0835fbd
chore(deps): bump kotlin from 2.2.21 to 2.3.21 in /samples/simple-str…
dependabot[bot] Apr 27, 2026
3c917cc
chore(deps): bump com.anthropic:anthropic-java from 2.26.0 to 2.27.0 …
dependabot[bot] Apr 27, 2026
9817b17
chore(deps): bump org.jetbrains.kotlin.jvm from 2.2.21 to 2.3.21 in /…
dependabot[bot] Apr 27, 2026
1d93042
chore(deps): bump kotlin from 2.2.21 to 2.3.21 in /samples/kotlin-mcp…
dependabot[bot] Apr 27, 2026
ec606db
chore(deps): bump kotlin from 2.2.21 to 2.3.21 in /samples/weather-st…
dependabot[bot] Apr 27, 2026
12ace76
chore: remove redundant JUnit XML report configuration (#728)
devcrocod Apr 28, 2026
7474a33
chore: drop deprecated watchosX64 and tvosX64 targets (#727)
devcrocod Apr 28, 2026
f434fca
feat!: SEP-1577 sampling with tools (#718)
devcrocod Apr 28, 2026
66d9efb
test(streamable-http): add missing integration tests for pagination, …
jskjw157 Apr 28, 2026
a238fc0
fix(server): evict stale GET SSE stream mapping on reconnect (#716)
amr Apr 29, 2026
64804a0
refactor: explicit locked detekt config (#729)
devcrocod Apr 29, 2026
c339d8c
release: bump version to 0.12.0 (#731)
devcrocod Apr 29, 2026
5cb3c1d
fix: enable DNS rebinding protection by default (#659)
devcrocod May 5, 2026
49e1072
chore(deps): bump the infrastructure group across 1 directory with 2 …
dependabot[bot] May 5, 2026
c121000
chore(deps): bump io.modelcontextprotocol:kotlin-sdk-client from 0.11…
dependabot[bot] May 5, 2026
9561624
chore(deps): bump mcp-kotlin from 0.11.1 to 0.12.0 in /samples/kotlin…
dependabot[bot] May 5, 2026
22e4808
chore(deps): bump mcp-kotlin from 0.11.1 to 0.12.0 in /samples/weathe…
dependabot[bot] May 5, 2026
3e4a5e0
chore(deps): bump kotlin from 2.3.20 to 2.3.21 in /samples/kotlinlang…
dependabot[bot] May 5, 2026
b009352
chore(deps): bump org.jetbrains.kotlinx:kotlinx-serialization-json fr…
dependabot[bot] May 5, 2026
93e5ed2
chore(deps): bump the other-dependencies group across 5 directories w…
dependabot[bot] May 5, 2026
3c092c6
chore(deps): bump gradle-wrapper from 9.4.1 to 9.5.0 (#747)
dependabot[bot] May 5, 2026
b20eec5
chore(deps): bump mcp-kotlin from 0.11.1 to 0.12.0 in /samples/kotlin…
dependabot[bot] May 6, 2026
bf2e339
chore(deps): bump mcp-kotlin from 0.11.1 to 0.12.0 in /samples/simple…
dependabot[bot] May 6, 2026
8a81429
chore(deps): bump zod from 4.3.6 to 4.4.3 in /integration-test/src/jv…
dependabot[bot] May 6, 2026
7b47472
chore(deps): bump hono from 4.12.14 to 4.12.18 in /integration-test/s…
dependabot[bot] May 11, 2026
bab4b0b
chore(deps): bump @types/node from 25.6.0 to 25.6.2 in /integration-t…
dependabot[bot] May 11, 2026
6d34e6c
chore(deps): bump fast-uri from 3.1.0 to 3.1.2 in /integration-test/s…
dependabot[bot] May 11, 2026
664c0da
chore(deps): bump com.anthropic:anthropic-java from 2.28.0 to 2.30.0 …
dependabot[bot] May 11, 2026
9947353
chore(deps): bump coroutines from 1.10.2 to 1.11.0 in /samples/kotlin…
dependabot[bot] May 11, 2026
a967df1
chore(deps): bump org.jetbrains.kotlinx:kotlinx-coroutines-test from …
dependabot[bot] May 11, 2026
d6027fd
chore(deps): bump the kotlinx group across 1 directory with 3 updates…
dependabot[bot] May 11, 2026
44e012e
fix(client): invoke onClose when SSE session disconnects (#437) (#738)
jskjw157 May 15, 2026
664f51b
test: remove mokksy dependency (#754)
devcrocod May 18, 2026
ebc53f0
feat!: capabilities for tasks, elicitation (#732)
devcrocod May 18, 2026
97a429f
chore(deps): bump org.junit.jupiter:junit-jupiter-params from 5.14.3 …
dependabot[bot] May 18, 2026
9764036
chore(deps): bump org.slf4j:slf4j-simple from 2.0.17 to 2.0.18 in the…
dependabot[bot] May 18, 2026
af7c5e1
chore(deps): bump the other-dependencies group across 5 directories w…
dependabot[bot] May 18, 2026
c854560
chore(deps): bump the all-dependencies group across 1 directory with …
dependabot[bot] May 18, 2026
6d5bac1
chore(deps): bump gradle-wrapper from 9.5.0 to 9.5.1 (#776)
dependabot[bot] May 18, 2026
1ff5f00
chore(deps): bump qs from 6.14.2 to 6.15.2 in /integration-test/src/j…
dependabot[bot] May 26, 2026
78066a9
chore(deps): bump the all-dependencies group across 1 directory with …
dependabot[bot] May 26, 2026
ff4b623
chore(deps): bump the other-dependencies group across 3 directories w…
dependabot[bot] May 26, 2026
37ee423
chore(deps): bump the infrastructure group with 2 updates (#783)
dependabot[bot] May 26, 2026
0adfb3b
fix!: harden lifecycle, dispatchers, back-pressure (#778)
devcrocod Jun 1, 2026
0eb1822
Update Ktor to version 3.4.3 (#785)
devcrocod Jun 1, 2026
6e6f805
Merge commit from fork
devcrocod Jun 2, 2026
b7eeeb1
release: 0.13.0 (#796)
devcrocod Jun 2, 2026
59b44a3
chore(deps): bump the other-dependencies group across 5 directories w…
dependabot[bot] Jun 2, 2026
32cc441
chore(deps): bump org.jetbrains.kotlinx:atomicfu-gradle-plugin from 0…
dependabot[bot] Jun 2, 2026
4b726c8
chore(deps): bump io.mockk:mockk from 1.14.9 to 1.14.11 in the testin…
dependabot[bot] Jun 2, 2026
cf88353
chore(deps): bump ch.qos.logback:logback-classic from 1.5.32 to 1.5.3…
dependabot[bot] Jun 2, 2026
2f71156
chore(deps): bump tsx from 4.22.3 to 4.22.4 in /integration-test/src/…
dependabot[bot] Jun 2, 2026
52f8b0f
chore(deps): bump the infrastructure group across 1 directory with 2 …
dependabot[bot] Jun 2, 2026
a1f11fa
chore(deps): bump hono from 4.12.18 to 4.12.23 in /integration-test/s…
dependabot[bot] Jun 5, 2026
75920e1
chore(deps): bump mcp-kotlin from 0.12.0 to 0.13.0 in /samples/kotlin…
dependabot[bot] Jun 16, 2026
fd8afcf
chore(deps): bump com.anthropic:anthropic-java from 2.35.0 to 2.40.1 …
dependabot[bot] Jun 16, 2026
0851f36
chore(deps): bump io.modelcontextprotocol:kotlin-sdk-client from 0.12…
dependabot[bot] Jun 16, 2026
b71df8b
chore(deps): bump @types/node from 25.9.1 to 25.9.3 in /integration-t…
dependabot[bot] Jun 16, 2026
2b9bc78
chore(deps): bump mcp-kotlin from 0.12.0 to 0.13.0 in /samples/kotlin…
dependabot[bot] Jun 16, 2026
251bacd
chore(deps): bump mcp-kotlin from 0.12.0 to 0.13.0 in /samples/simple…
dependabot[bot] Jun 16, 2026
479527c
chore(deps): bump mcp-kotlin from 0.12.0 to 0.13.0 in /samples/weathe…
dependabot[bot] Jun 16, 2026
d65c507
chore(deps): bump esbuild from 0.28.0 to 0.28.1 in /integration-test/…
dependabot[bot] Jun 16, 2026
75a944f
fix: polish SEP-1577 sampling handling (#765)
MukundaKatta Jun 17, 2026
d21728e
fix: bound inline SSE event size in Streamable HTTP client (#841)
devcrocod Jun 18, 2026
c8a1103
feat: sep-1036 add URL Mode Elicitation (#843)
devcrocod Jun 23, 2026
c5abfe4
chore(deps): bump @types/node from 25.9.3 to 26.0.0 in /integration-t…
dependabot[bot] Jun 23, 2026
bb265cc
chore(deps): bump hono from 4.12.23 to 4.12.27 in /integration-test/s…
dependabot[bot] Jun 23, 2026
2edcb51
chore(deps): bump the other-dependencies group across 5 directories w…
dependabot[bot] Jun 24, 2026
a84ff59
chore(deps): bump actions/checkout from 6 to 7 in the all-actions gro…
dependabot[bot] Jun 24, 2026
3274244
chore(deps): bump gradle-wrapper from 9.5.1 to 9.6.0 (#851)
dependabot[bot] Jun 24, 2026
2967696
chore(deps): bump com.vanniktech:gradle-maven-publish-plugin from 0.3…
dependabot[bot] Jun 24, 2026
cca883a
chore(deps): bump the kotest group across 1 directory with 3 updates …
dependabot[bot] Jun 24, 2026
b6f4ad5
chore(deps): bump org.jetbrains.kotlinx:kotlinx-collections-immutable…
dependabot[bot] Jun 25, 2026
d93f47f
chore(deps): bump ch.qos.logback:logback-classic from 1.5.34 to 1.5.3…
dependabot[bot] Jun 29, 2026
4103b87
chore(deps): bump org.jetbrains.kotlinx:kotlinx-io-core from 0.9.0 to…
dependabot[bot] Jun 29, 2026
cd91652
fix: validate Origin against localhost by default in DNS rebinding pr…
devcrocod Jun 29, 2026
64cf29f
chore(deps): bump gradle-wrapper from 9.6.0 to 9.6.1 (#856)
dependabot[bot] Jun 29, 2026
19db4b0
fix(client): gate completion/complete on the completions capability (…
rea9r Jun 29, 2026
0221b8d
fix(client): close stdio read sources during shutdown (#798)
jstar0 Jun 30, 2026
d2b1509
chore(deps): bump the other-dependencies group across 5 directories w…
dependabot[bot] Jun 30, 2026
bbf77ba
chore(deps): bump @types/node from 26.0.0 to 26.0.1 in /integration-t…
dependabot[bot] Jun 30, 2026
24ebc57
Merge branch 'main' into feature/enterprise-managed-authorization
prachi-okta Jun 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
81 changes: 81 additions & 0 deletions .claude/skills/kdoc/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
---
name: kdoc
description: "Add KDoc documentation to Kotlin public API. Use whenever the user asks to document Kotlin code, add KDoc, generate API docs, mentions undocumented public declarations, or wants to improve existing documentation. Also trigger when the user says 'add docs', 'document this class/file/module', 'write KDoc', or asks about missing documentation in Kotlin code."
---

# KDoc Generator

Add KDoc to all public Kotlin declarations (classes, interfaces, objects, functions, properties, enums, type aliases, annotations — including `@Deprecated`). Read the implementation, not just the signature, to write accurate descriptions.

## Tag placement

| Where the declaration lives | Tag |
|---|---|
| Primary-ctor `val` / `var` (public, internal, or protected) | `@property` in class KDoc |
| Primary-ctor `name: Type` (no `val`/`var`) | `@param` in class KDoc |
| Primary-ctor `private val` / `private var` | `@param` in class KDoc |
| Body of class/object/interface/sealed interface | inline `/** */` above the declaration |
| Function parameter | `@param` |
| Non-Unit return type | `@return` |

## Style

- Summary: one concise sentence, third-person verb ("Creates", "Returns", "Represents"). Expand to 2-3 sentences only when genuinely complex.
- **Example block**: mandatory for DSL builders (show full receiver-scope usage); add for complex functions or non-obvious extension functions; skip for one-liners and simple getters.
- KDoc links (`[ClassName]`, `[methodName]`) only where they add navigational value.
- Don't write `@throws` or "suspend" notes.
- Rewrite existing KDoc if incomplete or low quality.

## Examples

**Class with mixed primary-constructor parameters:**

````kotlin
/**
* Manages active client sessions and their lifecycle.
*
* @property maxSessions upper limit on concurrent sessions
* @param scope coroutine scope for session lifecycle tasks
* @param secret used internally for session token signing
*/
public class SessionManager(
public val maxSessions: Int, // public val → @property
scope: CoroutineScope, // no val/var → @param
private val secret: ByteArray, // private val → @param
)
````

**Body and interface properties (inline `/** */`):**

````kotlin
/** Represents an entity that includes additional metadata. */
public interface WithMeta {
/** Optional metadata attached to this entity. */
public val meta: JsonObject?
}

public class Connection(public val id: String) {
/** Capabilities negotiated during the handshake, or `null` before initialize completes. */
public val capabilities: ServerCapabilities? get() = ...
}
````

**Function with Example block:**

````kotlin
/**
* Registers a new tool with the given handler.
*
* Example:
* ```kotlin
* server.addTool(name = "echo", description = "Echoes input back") { request ->
* CallToolResult(content = listOf(TextContent("Echo: ${request.arguments}")))
* }
* ```
*
* @param name unique tool identifier
* @param description human-readable tool description
* @param handler suspend function invoked when the tool is called
* @return the registered tool definition
*/
````
76 changes: 76 additions & 0 deletions .claude/skills/mcp-docs/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
name: mcp-docs
description: >
Fetch live MCP specification and docs from modelcontextprotocol.io. Training data may be
outdated — default to using this skill when the query touches MCP protocol in any way.
Trigger for: implementing or debugging MCP features (sampling, elicitation, completion, tools,
resources, prompts, transports); SEPs or spec requirements; MCP transport behavior (SSE,
Streamable HTTP, reconnection, retry); authorization/OAuth; conformance test failures;
capability negotiation; message schemas. Skip only for pure Kotlin, build system, or
refactoring tasks with zero MCP protocol dependency. When in doubt, trigger.
user_invocable: true
---

# MCP Documentation Skill

Provides access to the official MCP specification and docs from modelcontextprotocol.io. The spec evolves faster than training data — always consult live documentation for protocol specifics like message schemas, required fields, capability negotiation, error handling, and transport requirements.

## When to use

**Proactively** (without being asked):
- Implementing a feature defined in the MCP spec
- Reviewing code that implements MCP protocol behavior
- Fixing conformance test failures

**On demand** (user asks or invokes `/mcp-docs`):
- Questions about how a specific MCP feature works
- Clarifying spec ambiguities
- Looking up SEPs (Specification Enhancement Proposals)

## How to fetch documentation

### Strategy: MCP tool first, llms.txt fallback

**Step 1 — Try the MCP search tool.** If `search_model_context_protocol` is available, use it:

```
search_model_context_protocol(query: "<your search query>")
```

One call, semantically ranked results. Fastest path.

**Step 2 — Fallback to llms.txt + WebFetch.** If the MCP tool is not available:

1. Fetch the documentation index:
```
WebFetch("https://modelcontextprotocol.io/llms.txt", "Return the full content as-is")
```

2. Identify the relevant page URL(s) from the index. Key sections:
- **Specification**: `specification/...` — protocol details, message formats, transports, lifecycle
- **SEPs**: `seps/...` — specification enhancement proposals
- **Learning**: `docs/learn/...` — architecture, concepts
- **Development**: `docs/develop/...` — building clients/servers

3. Fetch the specific page:
```
WebFetch("<page-url>", "Return the full content of this documentation page")
```

### Version handling

Always use the latest spec version by default. Only use a specific version or draft when the user explicitly requests it (e.g., "check the 2025-03-26 spec" or "what does the draft say").

### Search guidance

- Protocol message formats, required fields, capability negotiation → **Specification** section
- Feature motivation, design rationale → relevant **SEP**
- High-level concepts and architecture → **Learning** resources
- Use your judgment on query count. A field-level question may need one page; implementing a feature may need 2-3.

## Presenting information

- **Always cite sources.** Include links to spec pages used: `(source: <url>)`
- **Spec over training data** for specific protocol details (schemas, fields, error codes, capabilities). Training data is fine for general MCP concepts.
- **Preserve RFC 2119 language.** The spec uses MUST/SHOULD/MAY — keep this distinction when explaining requirements.
- **Be concise.** Focus on the details relevant to the user's task. Avoid dumping entire spec pages — extract what matters for the specific question or implementation at hand.
93 changes: 91 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,109 @@
# Configuration options:
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#about-the-dependabotyml-file
# yaml-language-server: $schema=https://json.schemastore.org/dependabot-2.0.json
# Configuration: https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2

updates:
# Root Gradle project (includes buildSrc)
- package-ecosystem: "gradle"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
commit-message:
prefix: "chore(deps):"
labels:
- "dependencies"
- "kotlin"
open-pull-requests-limit: 10
groups:
ktor:
patterns:
- "io.ktor:*"
kotlinx:
patterns:
- "org.jetbrains.kotlinx:*"
kotlin:
patterns:
- "org.jetbrains.kotlin:*"
kotest:
patterns:
- "io.kotest:*"
testing:
patterns:
- "io.mockk:*"
- "dev.mokksy:*"
- "org.awaitility:*"
- "org.junit.jupiter:*"
infrastructure:
patterns:
- "io.netty:*"
- "io.github.oshai:*"
- "org.slf4j:*"
gradle-plugins:
patterns:
- "dev.detekt"
- "org.jetbrains.kotlinx.kover"
- "org.jlleitschuh.gradle.ktlint"
- "org.jetbrains.kotlinx.knit"
- "org.jetbrains.kotlinx.binary-compatibility-validator"
- "org.openapi.generator"
- "org.jetbrains.dokka:*"
- "com.vanniktech:*"

# Samples (independent Gradle builds)
- package-ecosystem: "gradle"
directories:
- "/samples/*"
schedule:
interval: "weekly"
day: "monday"
commit-message:
prefix: "chore(deps):"
labels:
- "dependencies"
- "kotlin"
- "samples"
open-pull-requests-limit: 10
groups:
other-dependencies:
patterns:
- "*"
exclude-patterns:
- "io.ktor*"
- "org.jetbrains.kotlin*"
- "io.modelcontextprotocol*"

# npm (integration tests)
- package-ecosystem: "npm"
directory: "/integration-test/src/jvmTest/typescript"
schedule:
interval: "weekly"
day: "monday"
commit-message:
prefix: "chore(deps):"
labels:
- "dependencies"
- "javascript"
open-pull-requests-limit: 10
groups:
all-dependencies:
patterns:
- "*"

# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
commit-message:
prefix: "chore(deps):"
labels:
- "dependencies"
- "github-actions"
open-pull-requests-limit: 10
groups:
all-actions:
patterns:
- "*"
13 changes: 5 additions & 8 deletions .github/workflows/apidocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,7 @@ jobs:

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- uses: actions/checkout@v7

- name: Set up JDK ${{ env.JAVA_VERSION }}
uses: actions/setup-java@v5
Expand All @@ -37,17 +34,17 @@ jobs:
cache: gradle

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
uses: gradle/actions/setup-gradle@v6

- name: Generate Dokka Site
run: |-
./gradlew clean knit docs:classes docs:knitCheck dokkaGenerate
./gradlew knit docs:classes docs:knitCheck dokkaGenerate

- name: Upload artifact
uses: actions/upload-pages-artifact@v4
uses: actions/upload-pages-artifact@v5
with:
path: build/dokka/html

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@v5
Loading
Loading