OCaml client library for Claude Code
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

ocaml-claude: enable MDX on lib/mcp_server.mli

Run mdx on lib/mcp_server.mli so the {[ ... ]} odoc block now
type-checks against the public Claude module path. Qualified Tool /
Tool_input / Mcp_server / Options uses to `Claude.X` so the toploop
resolves them through the `claude` package.

+13 -9
+4
lib/dune
··· 2 2 (public_name claude) 3 3 (name claude) 4 4 (libraries eio eio_main fmt logs nox-json)) 5 + 6 + (mdx 7 + (files mcp_server.mli) 8 + (libraries claude))
+9 -9
lib/mcp_server.mli
··· 13 13 14 14 {[ 15 15 let greet = 16 - Tool.v ~name:"greet" ~description:"Greet a user" 16 + Claude.Tool.v ~name:"greet" ~description:"Greet a user" 17 17 ~input_schema: 18 - (Tool.schema_object 19 - [ ("name", Tool.schema_string) ] 18 + (Claude.Tool.schema_object 19 + [ ("name", Claude.Tool.schema_string) ] 20 20 ~required:[ "name" ]) 21 21 ~handler:(fun args -> 22 - match Tool_input.string args "name" with 22 + match Claude.Tool_input.string args "name" with 23 23 | Some name -> 24 - Ok (Tool.text_result (Printf.sprintf "Hello, %s!" name)) 24 + Ok (Claude.Tool.text_result (Printf.sprintf "Hello, %s!" name)) 25 25 | None -> Error "Missing name") 26 26 27 - let server = Mcp_server.v ~name:"my-tools" ~tools:[ greet ] () 27 + let server = Claude.Mcp_server.v ~name:"my-tools" ~tools:[ greet ] () 28 28 29 29 let options = 30 - Options.default 31 - |> Options.with_mcp_server ~name:"tools" server 32 - |> Options.with_allowed_tools [ "mcp__tools__greet" ] 30 + Claude.Options.default 31 + |> Claude.Options.with_mcp_server ~name:"tools" server 32 + |> Claude.Options.with_allowed_tools [ "mcp__tools__greet" ] 33 33 ]} 34 34 35 35 {2 Tool Naming}