Repository navigation
Releases: xstibo/pdsoe-mcp-server
Release list
v1.3.1
Bugfix release (no new tools). Verified live on PDSOE 12.8.
- get_method_source now returns only the requested routine. Its end line comes from the method's own
ENDtoken instead of a next-sibling walk that ran to end-of-file, so long methods (e.g. with nestedEND/CATCHblocks) are no longer over-returned. - get_file_outline / get_method_signature / get_method_source now parse syntactically (no tree-parser symbol resolution), so classes that use
DEFINE BUFFER ... FOR <db-table>no longer fail with a NullPointerException. - search_in_files gained an optional
pathargument to scope the search to a project-relative folder or file; the search term is also accepted under the aliassearch; and regex searches now anchor^/$per line (MULTILINE). - write_file creates new files with the workspace's configured line delimiter (CRLF on Windows) instead of LF, so a new file no longer diffs as fully changed on its first commit.
Install: drop the JAR into PDSOE's dropins/ (delete the old versioned JAR first) and restart PDSOE.
v1.3.0
New tools
svn_diff— runssvn diffon a project's working copy (optionalpathnarrows to a file/folder,revisionis passed tosvn -r, e.g.BASE,HEAD,1234,1200:HEAD). The svn client is auto-detected on thePATHand at common install locations, or set its full path under Preferences → PDSOE MCP Server → Version Control.rebuild_files_with_errors— recompiles every file in the project that has an error marker, via PDSOE's own "Recompile Files that Have Errors" command.
Fix
clean_projectnow uses the workspace-root scheduling rule, fixing abeginRule: R/ does not match P/<project>failure when the ABL builder ran the clean build.
Install: drop the attached JAR into your PDSOE dropins/ folder (delete the older versioned copy first) and restart PDSOE.
v1.2.2
Bugfix release.
Fixed
replace_in_filenow matches literal multi-line searches on CRLF files. A literal (non-regex)
search arrives LF-joined from the MCP client and silently matched nothing against CRLF file
content ("Replaced 0 occurrence(s)" despite the text being present). The search string's line
endings are now normalized to the file's before matching. Literal replacements containing$or
\land verbatim (no accidental backreference), and a 0-match call no longer rewrites the file.build_filealways recompiles the requested file. The ABL incremental builder skips files it
considers unchanged, which left stale state: error markers persisting after a missing dependency
was resolved, and a dependent class compiling against an interface's stale r-code after an
out-of-editor edit.build_filenow touches the file before the build so it is always in the
build delta and truly recompiles - nobuild_project full:trueworkaround needed.- Clearer diagnostics for error 12918 (could not compile a super class). When a marker reports
12918, the build/marker tools append a hint: the cause is usually an interface/implementation
mismatch inside the super class (a method signature or accessor-visibility difference). The hint
covers both a super that builds clean on its own and one that surfaces its own error (e.g. 12942).
Install
Drop the attached JAR into PDSOE's dropins/ (delete any older versioned JAR first) and restart PDSOE.
v1.2.1
Bugfix release.
Fixed
- Edit tools no longer rewrite every line's ending. The line-based edit tools
(insert_at_line,replace_lines,delete_lines_in_file,apply_patch) rewrote files with
LF and a forced trailing newline, hardcoded to UTF-8. On CRLF files this flipped every line's
terminator, so version control (SVN/Git) reported the whole file as changed even when only one
line was edited. - Writes now preserve each file's existing line separator (CRLF/LF), trailing-newline state, and
Eclipse charset (IFile.getCharset()).write_filenormalizes incoming content to the existing
file's EOL on overwrite;replace_in_filematches its replacement's endings to the file.
Install
Drop the attached JAR into PDSOE's dropins/ (delete any older versioned JAR first) and restart PDSOE.
v1.2.0
What's new
Per-tool filtering — Window > Preferences > PDSOE MCP Server:
- A new Tools section with a checkbox tree of domains -> individual tools. Uncheck a tool (or a whole domain) to stop the server registering it.
- Disabled tools are stored in the
tools.disabledpreference, so new tools added in future versions default to enabled. - A tool-filter change is applied live on the running server - the connected MCP client's tool list updates immediately, no IDE or server restart needed.
Fixes
- Server restarts (on a port change) now use a hard Jetty stop so the socket releases deterministically instead of waiting on a connected client's stream to drain (which previously timed out and logged "Error stopping Jetty server").
Install
Download the JAR, drop it into PDSOE's dropins/ folder (delete any older versioned JAR first), and restart PDSOE.
v1.1.0
What's new
Eclipse Preferences page — Window > Preferences > PDSOE MCP Server:
- Enable HTTP MCP Server toggle (default on)
- Port setting (validated 1024-65535; the
-Dpdsoe.mcp.portsystem property still sets the default) - Server Status line
Changes apply on Apply / Apply and Close and restart the server live - no IDE restart needed. Bind failures (e.g. a port already in use) are reported instead of failing silently. The bind address stays loopback-only.
Install
Download the JAR, drop it into PDSOE's dropins/ folder (delete any older versioned JAR first), and restart PDSOE.
v1.0.0
First public release of the PDSOE MCP Server — an Eclipse OSGi plugin that embeds an MCP (Model Context Protocol) server inside Progress Developer Studio for OpenEdge (PDSOE), exposing your ABL workspace to AI assistants like Claude.
52 MCP tools across workspace navigation, code reading, a cross-reference symbol graph, editor state, diagnostics/build, code editing, and local-history file ops. Binds to http://127.0.0.1:8123/mcp (loopback only) on IDE startup.
Install
Download com.github.xstibo.pdsoe.mcp_1.0.0.202605302333.jar below, drop it into your PDSOE installation's dropins/ folder, and restart PDSOE. Confirm startup via Window > Show View > Error Log. See the README for connecting Claude Code.
Note
This plugin's code is 100% generated by Claude Code. It runs and is verified live against PDSOE 12.8, but may still contain bugs — please open an issue if you hit one.