<?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>Forem: prathyusha k</title>
    <description>The latest articles on Forem by prathyusha k (@prathyusha_kilaru).</description>
    <link>https://forem.com/prathyusha_kilaru</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%2F3901187%2F7fc7437e-0e20-4631-b63c-0a4fb3780d5d.png</url>
      <title>Forem: prathyusha k</title>
      <link>https://forem.com/prathyusha_kilaru</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/prathyusha_kilaru"/>
    <language>en</language>
    <item>
      <title>I build an AI agent using StackOne MCP</title>
      <dc:creator>prathyusha k</dc:creator>
      <pubDate>Tue, 05 May 2026 21:18:19 +0000</pubDate>
      <link>https://forem.com/prathyusha_kilaru/i-build-an-ai-agent-using-stackone-mcp-3dl4</link>
      <guid>https://forem.com/prathyusha_kilaru/i-build-an-ai-agent-using-stackone-mcp-3dl4</guid>
      <description>&lt;p&gt;Hello myself Prathyusha. When I decided to apply to StackOne, I did not send &lt;br&gt;
a resume first. I built something with their platform first.&lt;/p&gt;

&lt;p&gt;This is the story of building an AI agent using StackOne MCP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Built&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An AI agent that onboards a new employee across &lt;br&gt;
4 enterprise platforms automatically — using &lt;br&gt;
StackOne MCP as the single integration gateway.&lt;/p&gt;

&lt;p&gt;One command does everything:&lt;/p&gt;

&lt;p&gt;npm run onboard -- &lt;br&gt;
example employee name: Priya Sharma&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;Step 1: Fetching candidate...     ✓ Priya Sharma&lt;br&gt;
Step 2: Creating BambooHR record... ✓ Employee #115&lt;br&gt;
Step 3: Creating Notion page...   ✓ Checklist created&lt;br&gt;
Step 4: Sending Slack message...  ✓ Team notified&lt;/p&gt;

&lt;p&gt;Onboarding complete in seconds.&lt;br&gt;
Audit trail written to audit-log.json.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem It Solves&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most companies onboard employees manually:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HR types data into BambooHR by hand.&lt;/li&gt;
&lt;li&gt;Someone creates a Notion doc from scratch.&lt;/li&gt;
&lt;li&gt;Manager writes a Slack welcome manually.&lt;/li&gt;
&lt;li&gt;IT gets notified separately.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is 2 to 4 hours of manual work per new hire.&lt;br&gt;
This agent does all of it in seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is StackOne MCP?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MCP stands for Model Context Protocol.&lt;/li&gt;
&lt;li&gt;It is an open standard that lets AI agents &lt;/li&gt;
&lt;li&gt;connect to external tools in a structured way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Without StackOne:&lt;/strong&gt;&lt;br&gt;
Agent → custom code → BambooHR&lt;br&gt;
Agent → different code → Notion&lt;br&gt;
Agent → another code → Slack&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;With StackOne MCP:&lt;/strong&gt;&lt;br&gt;
Agent → ONE endpoint → BambooHR&lt;br&gt;
                    → Notion&lt;br&gt;
                    → Slack&lt;/p&gt;

&lt;p&gt;One API key. One endpoint. 260+ integrations.&lt;br&gt;
Auth, retries, and audit logging handled &lt;br&gt;
automatically by StackOne's Falcon engine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CLI input&lt;br&gt;
    ↓&lt;br&gt;
src/index.ts    — reads candidate name&lt;br&gt;
    ↓&lt;br&gt;
src/agent.ts    — orchestrates 4 steps&lt;br&gt;
    ↓&lt;br&gt;
src/stackone.ts — MCP client&lt;br&gt;
    ↓&lt;br&gt;
api.stackone.com/mcp&lt;br&gt;
    ↓         ↓        ↓&lt;br&gt;
BambooHR   Notion   Slack&lt;br&gt;
    ↓&lt;br&gt;
audit-log.json&lt;/p&gt;

&lt;p&gt;Built in TypeScript. 9 files. Clean structure.&lt;br&gt;
Supports multiple candidates in one command:&lt;/p&gt;

&lt;p&gt;npm run onboard -- john sarah alex priya&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Language   → TypeScript&lt;br&gt;
Runtime    → Node.js + tsx&lt;br&gt;
Gateway    → StackOne MCP server&lt;br&gt;
HRIS       → BambooHR&lt;br&gt;
Docs       → Notion&lt;br&gt;
Messaging  → Slack&lt;br&gt;
Audit      → JSON file&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3 Real Errors I Hit&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These taught me the most about StackOne MCP.&lt;/p&gt;

&lt;p&gt;─────────────────────────────────────────&lt;br&gt;
&lt;strong&gt;Error 1 — Missing Accept Header&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not Acceptable: Client must accept both&lt;br&gt;
application/json and text/event-stream&lt;/p&gt;

&lt;p&gt;Why: StackOne MCP uses streaming protocol.&lt;br&gt;
Must declare support for both formats.&lt;/p&gt;

&lt;p&gt;Fix: Add this header to every request:&lt;/p&gt;

&lt;p&gt;"Accept": "application/json, text/event-stream"&lt;br&gt;
─────────────────────────────────────────&lt;br&gt;
&lt;strong&gt;Error 2 — Silent BambooHR Redirect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No error thrown. Agent said success.&lt;br&gt;
Employee never appeared in BambooHR.&lt;/p&gt;

&lt;p&gt;The response was returning:&lt;br&gt;
"location": "&lt;a href="https://www.bamboohr.com" rel="noopener noreferrer"&gt;https://www.bamboohr.com&lt;/a&gt;"&lt;/p&gt;

&lt;p&gt;Instead of:&lt;br&gt;
"location": "&lt;a href="https://api.bamboohr.com/" rel="noopener noreferrer"&gt;https://api.bamboohr.com/&lt;/a&gt;&lt;br&gt;
             .../mytestorg/.../employees/115"&lt;/p&gt;

&lt;p&gt;Why: Wrong BambooHR account connected &lt;br&gt;
in StackOne. Requests went to wrong instance.&lt;/p&gt;

&lt;p&gt;Fix: Delete wrong account in StackOne.&lt;br&gt;
Re-link with correct subdomain: mytestorg.&lt;br&gt;
─────────────────────────────────────────&lt;br&gt;
&lt;strong&gt;Error 3 — Wrong Slack Tool Name&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;MCP error -32602: Tool slack_post_message &lt;br&gt;
not found&lt;/p&gt;

&lt;p&gt;Why: StackOne names tools differently &lt;br&gt;
from the underlying provider APIs.&lt;/p&gt;

&lt;p&gt;Fix: Called tools/list to see all Slack tools.&lt;br&gt;
Correct name was slack_send_message.&lt;br&gt;
Field name was channel_id not channel.&lt;/p&gt;

&lt;p&gt;Pro tip: Always use tools/list before &lt;br&gt;
assuming tool names. Saves hours of guessing.&lt;br&gt;
─────────────────────────────────────────&lt;br&gt;
&lt;strong&gt;What I Learned About StackOne MCP&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always accept text/event-stream in headers.&lt;/li&gt;
&lt;li&gt;Each integration has its own Account ID.&lt;/li&gt;
&lt;li&gt;Use tools/list to find exact tool names.
&lt;/li&gt;
&lt;li&gt;All tools wrap fields inside body object.&lt;/li&gt;
&lt;li&gt;Wrong account = silent redirect, not error.&lt;/li&gt;
&lt;li&gt;StackOne Logs shows every API call made.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Results&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;BambooHR → Employee #115 created ✓&lt;br&gt;
Notion   → Onboarding page with Day 1 checklist ✓&lt;br&gt;
Slack    → Welcome message in #onboarding-alerts ✓&lt;br&gt;
Audit    → 4 timestamped entries logged ✓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thought&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;StackOne MCP made connecting to 4 enterprise &lt;br&gt;
platforms easier than connecting to one platform &lt;br&gt;
the traditional way.&lt;/p&gt;

&lt;p&gt;One API key replaced four SDKs.&lt;br&gt;
One endpoint replaced four auth systems.&lt;br&gt;
One integration replaced months of work.&lt;/p&gt;

&lt;p&gt;Full code on GitHub:&lt;br&gt;
github.com/prathyushak828/stackone-onboarding-agent&lt;/p&gt;

&lt;p&gt;If you are building AI agents that need to touch &lt;br&gt;
enterprise SaaS — StackOne MCP is worth your time.&lt;/p&gt;

&lt;h1&gt;
  
  
  StackOne #MCP #TypeScript #AIAgents #BuildInPublic
&lt;/h1&gt;

</description>
      <category>mcp</category>
      <category>typescript</category>
      <category>ai</category>
      <category>stackone</category>
    </item>
  </channel>
</rss>
