Skip to content

Releases: xstibo/pdsoe-mcp-server

v1.3.1

Choose a tag to compare

@xstibo xstibo released this 16 Jul 12:15

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 END token instead of a next-sibling walk that ran to end-of-file, so long methods (e.g. with nested END/CATCH blocks) 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 path argument to scope the search to a project-relative folder or file; the search term is also accepted under the alias search; 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

Choose a tag to compare

@xstibo xstibo released this 01 Jul 20:30

New tools

  • svn_diff — runs svn diff on a project's working copy (optional path narrows to a file/folder, revision is passed to svn -r, e.g. BASE, HEAD, 1234, 1200:HEAD). The svn client is auto-detected on the PATH and 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_project now uses the workspace-root scheduling rule, fixing a beginRule: 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

Choose a tag to compare

@xstibo xstibo released this 12 Jun 06:49

Bugfix release.

Fixed

  • replace_in_file now 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_file always 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_file now touches the file before the build so it is always in the
    build delta and truly recompiles - no build_project full:true workaround 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

Choose a tag to compare

@xstibo xstibo released this 01 Jun 21:49

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_file normalizes incoming content to the existing
    file's EOL on overwrite; replace_in_file matches 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

Choose a tag to compare

@xstibo xstibo released this 31 May 22:25

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.disabled preference, 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

Choose a tag to compare

@xstibo xstibo released this 31 May 08:07

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.port system 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

Choose a tag to compare

@xstibo xstibo released this 30 May 21:35

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.