Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[WIP] MCP#8001

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Draft
zth wants to merge1 commit intomaster
base:master
Choose a base branch
Loading
fromexperimental-mcp
Draft

[WIP] MCP#8001

zth wants to merge1 commit intomasterfromexperimental-mcp

Conversation

@zth
Copy link
Member

@zthzth commentedNov 2, 2025

This bootstrap a simple MCP for ReScript, through Rewatch. Initially it adds a single commanddiagnose, which will run quick diagnostics for a single file. Diagnostics here means that we'll run a compilation only on the single file targeted, no dependents, so it's really quick. Warnings and errors are returned to the LLM.

Supersedes#7566.

tsnobip and mediremi reacted with rocket emoji
@zthzth mentioned this pull requestNov 2, 2025
.concat())
}

pubfncompiler_args_for_diagnostics(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Please add a comment why this exists.

fnlist_tools(&self) ->Vec<mcp_spec::tool::Tool>{
vec![Tool::new(
"diagnose",
"Quick per-file diagnostics after edits; prefer before full build; no writes; only this file.",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

You might want to clarify whatpath is here.
I know it is a.res or.resi path, preferably the full path, but if left unspecified the LLM might call this with some other path.

let name = tool_name.to_string();
Box::pin(asyncmove{
match name.as_str(){
"diagnose" =>{
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

This seems rather horrible that we need to parse the tool name ourselves. Is there no better abstraction for this?

fninstructions(&self) ->String{
"ReScript MCP server.\n\n\
Tools:\n\
- diagnose(path): Quick per-file diagnostics after edits. Prefer this before a full build.\n\
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

This tool call does feel a bit like duplication of one of the LSP endpoints.
It makes me wonder if we should explore having an LSP client inside the MCP tool that can ask this information from the running LSP Server.

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@nojafnojafnojaf left review comments

At least 1 approving review is required to merge this pull request.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

3 participants

@zth@nojaf

[8]ページ先頭

©2009-2025 Movatter.jp