<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kurt @ RokiPark</title>
    <description>The latest articles on DEV Community by Kurt @ RokiPark (@kurtmultivaluedev).</description>
    <link>https://dev.to/kurtmultivaluedev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2077516%2F6a40e756-75ec-49d7-a936-fa512c8797b7.png</url>
      <title>DEV Community: Kurt @ RokiPark</title>
      <link>https://dev.to/kurtmultivaluedev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kurtmultivaluedev"/>
    <language>en</language>
    <item>
      <title>Modernizing U2 UniData: From DICTionaies/UniBasic code to a Live CRM in Minutes using UOFastCoder Skills &amp; Agents + MCP.</title>
      <dc:creator>Kurt @ RokiPark</dc:creator>
      <pubDate>Sun, 19 Apr 2026 19:58:50 +0000</pubDate>
      <link>https://dev.to/kurtmultivaluedev/modernizing-u2-unidata-from-dictionaiesunibasic-code-to-a-live-crm-in-minutes-using-uofastcoder-25bb</link>
      <guid>https://dev.to/kurtmultivaluedev/modernizing-u2-unidata-from-dictionaiesunibasic-code-to-a-live-crm-in-minutes-using-uofastcoder-25bb</guid>
      <description>&lt;p&gt;UOFastMCP + UOFastCoder let AI agents read your live U2 UniData schema and generate a complete Python Flask (WTForms) based CRM app. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frcxhbs4me5a4lioe53ze.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frcxhbs4me5a4lioe53ze.png" alt=" " width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're running a business on U2 UniData, your data is already there — &lt;code&gt;CLIENTS&lt;/code&gt;, &lt;code&gt;CONTACTS&lt;/code&gt;, &lt;code&gt;ORDERS&lt;/code&gt;, &lt;code&gt;INVENTORY&lt;/code&gt;. What's missing is a modern interface your team can actually use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UOFastMCP&lt;/strong&gt; and &lt;strong&gt;UOFastCoder&lt;/strong&gt; are two open-source tools that let an AI agent read your live UniData schema and generate a complete React CRM — no manual BASIC coding, no bespoke REST adapters.&lt;/p&gt;

&lt;p&gt;Here's what the finished result looks like:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50dvci21qu6jc3yazmze.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50dvci21qu6jc3yazmze.png" alt=" " width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Real data. Real app. Let's build it.&lt;/p&gt;




&lt;h2&gt;
  
  
  What you need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A running UniData instance with the DEMO account&lt;/li&gt;
&lt;li&gt;Python 3.11+ and Node.js 20+&lt;/li&gt;
&lt;li&gt;Claude Code (or any MCP-capable AI client)
If using VSCode with Claude Extension, then please read README within UOFastCoder and UOFastMCP
---&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Your AI Agent (Claude Code)
        │
        ▼
  UOFastMCP Server          ← connects to live UniData via uopy
        │
        ▼
  UniData DEMO Account      ← CLIENTS · CONTACTS · ORDERS · INVENTORY
        │
        ▼
  UOFastCoder Skills        ← generates TypeScript types + React components
        │
        ▼
  Your React CRM App        ← running at localhost:5173
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 1 — Install UOFastMCP
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/rokipark/uofastmcp.git
&lt;span class="nb"&gt;cd &lt;/span&gt;uofastmcp
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Follow instruction in (&lt;a href="https://github.com/rokipark/uofastmcp" rel="noopener noreferrer"&gt;https://github.com/rokipark/uofastmcp&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Illustration below&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zvbabfbq31jog8h7z59.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zvbabfbq31jog8h7z59.png" alt=" " width="800" height="677"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Start the server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uofast-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Step 2 — Connect Claude Code to UOFastMCP
&lt;/h2&gt;

&lt;p&gt;this adds connection string to your &lt;code&gt;~/.claude/settings.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;claude&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;mcp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;add&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;--transport&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;sse&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;UOFastMCP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;http://localhost:&lt;/span&gt;&lt;span class="mi"&gt;8000&lt;/span&gt;&lt;span class="err"&gt;/sse&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;--header&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Authorization: Basic &amp;lt;your-base64-token&amp;gt;"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude Code will now have access to your live UniData files as MCP tools — &lt;code&gt;query_file&lt;/code&gt;, &lt;code&gt;read_record&lt;/code&gt;, &lt;code&gt;get_dict_items&lt;/code&gt;, and more.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3 — Let UOFastCoder generate the app
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Verify the connection
&lt;strong&gt;/uo-setup&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Confirms the MCP server is reachable and credentials are correct. If anything is wrong it gives exact steps to fix it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Document your database (one-time setup)&lt;br&gt;
&lt;strong&gt;/uo-document --all&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next, Open Claude Code and type this single prompt:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
Using UOFastMCP and UOFastCoder, introspect the CLIENTS,
CONTACTS, and ORDERS files in the demo connection, then
generate a complete React CRM app with:
  - A dashboard with summary cards and recent records
  - A paginated, searchable Clients list with view and edit
  - An Orders view with line items
  - An Express API gateway wiring everything together
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;UOFastCoder reads your actual DICT definitions — field names, attribute numbers, conversion codes like &lt;code&gt;MD2&lt;/code&gt; for currency and &lt;code&gt;D4/&lt;/code&gt; for dates — and generates strongly-typed TypeScript interfaces and React components that match your real data structure.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4 — Run it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;crm-app
python app.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. Your CRM is live at &lt;code&gt;http://localhost:&amp;lt;Port&amp;gt;&lt;/code&gt;, reading directly from UniData.&lt;/p&gt;




&lt;h2&gt;
  
  
  What gets generated
&lt;/h2&gt;

&lt;p&gt;The finished app includes everything you saw in the screenshots above:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard&lt;/strong&gt; — Clients and Orders counts, quick-action cards, recent records at a glance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clients CRUD&lt;/strong&gt; — searchable paginated table, view detail, inline edit, New Client form&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orders&lt;/strong&gt; — order list with client lookup and line item detail&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inventory&lt;/strong&gt; — parts and pricing from your INVENTORY file&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Express gateway&lt;/strong&gt; — typed REST routes, multi-value field expansion, date conversion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All driven by your actual UniData DEMO data — Bank and Trust, Travelbooks, United Hospital, and the rest of the records you already have.&lt;/p&gt;




&lt;h2&gt;
  
  
  Go further
&lt;/h2&gt;

&lt;p&gt;Once you have the DEMO working, pointing at your own account is one line change in &lt;code&gt;connections.json&lt;/code&gt;. UOFastCoder's skills also cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Write-back forms&lt;/strong&gt; — save edits back to UniData via &lt;code&gt;write_record&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;** ( not part of this demo ) SB+ screen extraction** — convert legacy Process screens to React&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker deployment&lt;/strong&gt; — containerize the full stack for production&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Both tools are open source. Star the repos and check out the docs at &lt;a href="https://rokipark.ai" rel="noopener noreferrer"&gt;rokipark.ai&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;a href="https://github.com/rokipark/uofastmcp" rel="noopener noreferrer"&gt;rokipark/uofastmcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🔗 &lt;a href="https://github.com/rokipark/uofastcoder" rel="noopener noreferrer"&gt;rokipark/uofastcoder&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agentskills</category>
      <category>mcp</category>
      <category>u2</category>
    </item>
    <item>
      <title>U2 UniData with Low-code AI: UOFast + VectorShift RAG Integration</title>
      <dc:creator>Kurt @ RokiPark</dc:creator>
      <pubDate>Sat, 05 Jul 2025 04:30:26 +0000</pubDate>
      <link>https://dev.to/kurtmultivaluedev/u2-unidata-with-low-code-ai-uofast-vectorshift-rag-integration-mh8</link>
      <guid>https://dev.to/kurtmultivaluedev/u2-unidata-with-low-code-ai-uofast-vectorshift-rag-integration-mh8</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;A new way to develop a pipeline that connects legacy UniData (U2) systems with modern AI using a Python library called UOFast, enabling seamless data extraction and feeding that into a Retrieval-Augmented Generation (RAG) app powered by VectorShift. If you're looking to modernize legacy MultiValue databases and make them AI-friendly with Low-code RAG, read on!&lt;/p&gt;

&lt;h3&gt;
  
  
  🔧The Problem
&lt;/h3&gt;

&lt;p&gt;Many businesses still rely on Rocket's U2 (UniData/UniVerse) systems — battle-tested but difficult to integrate with modern AI workflows. The challenge? Bridging that gap with minimal disruption and enabling value extraction from data stored in a non-relational, MultiValue world.&lt;/p&gt;

&lt;h3&gt;
  
  
  💡 The Solution: UOFast + VectorShift
&lt;/h3&gt;

&lt;p&gt;I created a project that connects U2 UniData to a RAG app using:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UOFast&lt;/strong&gt;: A lightweight Python library that connects to UniData via Python uopy &amp;amp; extracts data into Python-native formats.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VectorShift&lt;/strong&gt;: A low-code RAG platform that lets you build AI chatbots backed by your own data (PDFs, structured files, etc.).&lt;/p&gt;

&lt;h3&gt;
  
  
  🔗 Architecture Overview
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevsbr2vny6we0zze1cm4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevsbr2vny6we0zze1cm4.png" alt="Low Code RAG UI workflow" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UOFast pulls data from UniData, flattens MultiValue structures, and prepares documents.&lt;/li&gt;
&lt;li&gt;These documents are ingested into VectorShift, where they're indexed and used in a RAG pipeline.&lt;/li&gt;
&lt;li&gt;The end result? A natural language interface to query legacy system data using GPT-powered search!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Steps
&lt;/h3&gt;

&lt;h4&gt;
  
  
  - Startup RokiPark/UOFast to connect to your local U2 Unidata.
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0435k2fgfyj9rilv29dn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0435k2fgfyj9rilv29dn.png" alt="Startup RokiPark/UOFast from command line" width="800" height="254"&gt;&lt;/a&gt;&lt;br&gt;
(Please see &lt;a href="https://github.com/RoKiPaRk/UOFast" rel="noopener noreferrer"&gt;Github link&lt;/a&gt;) for more info.&lt;/p&gt;

&lt;h4&gt;
  
  
  - Connect to the UOFast API from VectorShift to extract information
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzc2tunv2kr35hknqk93w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzc2tunv2kr35hknqk93w.png" alt="Create VectorShift pipeline" width="800" height="388"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.vectorshift.ai/introduction" rel="noopener noreferrer"&gt;VectorShift Documentation link&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  - Create a Chatbot interface in VectorShift
&lt;/h4&gt;

&lt;p&gt;Tip - You can use a template from the existing Vectorshift templates to create this RAG workflow. I used a CSV template and replaced the CSV data extraction with UOFast API extraction.&lt;/p&gt;

&lt;h5&gt;
  
  
  Once completed, a chatbot link is created in Vectorshift which can be embedded in your web application. Here is a Demo which uses the Unidata/Demo CLIENT table to answer questions
&lt;/h5&gt;

&lt;p&gt;&lt;a href="https://rokiparkai.wixsite.com/homepage" rel="noopener noreferrer"&gt;Demo link&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 Why RAG?
&lt;/h3&gt;

&lt;p&gt;Retrieval-Augmented Generation brings your private data into GPT-style answers without retraining. By plugging in UniData's structured output, I could enable:&lt;/p&gt;

&lt;p&gt;Natural language search for records&lt;/p&gt;

&lt;p&gt;Chatbot Q&amp;amp;A on sales history, order data, etc.&lt;/p&gt;

&lt;p&gt;Summarization of legacy reports&lt;/p&gt;

&lt;h3&gt;
  
  
  🔜 What’s Next
&lt;/h3&gt;

&lt;p&gt;Add real-time sync for live querying&lt;/p&gt;

&lt;p&gt;Support Program generation and Auto-API conversion (auto-generating RESTful APIs from legacy logic)&lt;/p&gt;

&lt;p&gt;Build a lightweight admin panel with FastAPI + NiceGUI for non-technical users&lt;/p&gt;

&lt;h3&gt;
  
  
  📢 Feedback Welcome!
&lt;/h3&gt;

&lt;p&gt;This is a work in progress, and I’d love feedback, especially if you work with UniData or build enterprise RAG solutions. PRs, feature requests, and use-case suggestions are welcome on GitHub or email - &lt;a href="mailto:tech@rokipark.ai"&gt;tech@rokipark.ai&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🔗 Links:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/RoKiPaRk/UOFast" rel="noopener noreferrer"&gt;RokiPark UOFast&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.vectorshift.ai/introduction" rel="noopener noreferrer"&gt;VectorShift Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.rocketsoftware.com/en-us/products/multivalue/unidata" rel="noopener noreferrer"&gt;UniData by Rocket Software&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s bring legacy systems into the AI era — one table at a time. 🧠💾&lt;/p&gt;

</description>
      <category>multivalue</category>
      <category>ai</category>
      <category>rag</category>
      <category>vectorshift</category>
    </item>
  </channel>
</rss>
