Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
6716890
feat(postgres): add Postgres data source connector
nadyyym Mar 30, 2026
203a794
fix(test): update definitions mock for data_sources query, exclude wo…
nadyyym Mar 31, 2026
c7c61fd
feat(hubspot): add database migration and integration registry entry
nadyyym Mar 31, 2026
36c4621
feat(hubspot): add types, auth module, and config helpers
nadyyym Mar 31, 2026
38e3ec2
feat(hubspot): add OAuth and Private App validation routes
nadyyym Mar 31, 2026
c1a3222
feat(hubspot): add connections CRUD routes
nadyyym Mar 31, 2026
7a06d3d
test(hubspot): add Phase 1 tests for auth, OAuth callback, and validate
nadyyym Mar 31, 2026
e93ff91
feat(hubspot): add HubSpot API client and rate limiter
nadyyym Mar 31, 2026
fd2c5b0
feat(hubspot): add polling engine and cron sync route
nadyyym Mar 31, 2026
f816a8d
feat(hubspot): add search, objects, and properties API routes
nadyyym Mar 31, 2026
2a994a8
test(hubspot): add Phase 2 tests for client, rate limiter, cron, and …
nadyyym Mar 31, 2026
889cd0d
feat(hubspot): add entity operations, associations, and destination A…
nadyyym Mar 31, 2026
ef90cb3
feat(hubspot): add HubSpotStep and HubSpotConnectionPreview for setup…
nadyyym Mar 31, 2026
227784c
feat(hubspot): add field mapping step, settings section, and HubSpot …
nadyyym Mar 31, 2026
8b7a78a
feat(hubspot): add HubSpotEntityCreator and HubSpotEntityChip components
nadyyym Mar 31, 2026
16d4cfc
test(hubspot): add tests for entity operations, associations, and ent…
nadyyym Mar 31, 2026
dfeeec1
feat(hubspot): add agent API routes for HubSpot CRM operations
nadyyym Mar 31, 2026
eab6423
feat(hubspot): add agent API tests (HS-A01 through HS-A22)
nadyyym Mar 31, 2026
101d4b6
feat(hubspot): add 14 MCP server tools for HubSpot CRM operations
nadyyym Mar 31, 2026
a4ea739
feat(hubspot): add 5 HubSpot signal detectors and scoring weights
nadyyym Mar 31, 2026
4a39cd2
feat(hubspot): add vercel cron, setup status, and analytics events
nadyyym Mar 31, 2026
911e5c8
chore: add .worktrees/ to .gitignore
nadyyym Apr 6, 2026
158fe68
fix(hubspot): swap association arguments in batchCreateChain
nadyyym Apr 15, 2026
85bc5af
fix(hubspot): filter signal detectors by account domain via associations
nadyyym Apr 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# Git worktrees
.worktrees/

# Misc
*.pem
*.log
Expand Down
14 changes: 14 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
"clsx": "^2.1.1",
"lucide-react": "^0.562.0",
"next": "16.1.1",
"postgres": "^3.4.8",
"react": "19.2.3",
"react-dom": "19.2.3",
"recharts": "^3.6.0",
Expand Down
7 changes: 7 additions & 0 deletions packages/mcp-server/src/lib/proxy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ export async function callApi(
params?: Record<string, string>
/** Tool name for request logging. If set, the invocation is logged. */
toolName?: string
/** Additional headers to include in the request */
extraHeaders?: Record<string, string>
}
): Promise<{ data: unknown; status: number }> {
// M18 fix: Validate path against allowlist
Expand Down Expand Up @@ -77,6 +79,11 @@ export async function callApi(
headers['Authorization'] = authHeader
}

// Merge extra headers (e.g., x-agent-secret for agent routes)
if (options?.extraHeaders) {
Object.assign(headers, options.extraHeaders)
}

// M16 fix: AbortController with 30s timeout
const controller = new AbortController()
const timeout = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS)
Expand Down
4 changes: 4 additions & 0 deletions packages/mcp-server/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ import { registerJoinsTools } from './tools/joins.js'
import { registerMappingTools } from './tools/mapping.js'
import { registerBillingTools } from './tools/billing.js'
import { registerWorkspaceTools } from './tools/workspace.js'
import { registerPostgresTools } from './tools/postgres.js'
import { registerHubSpotTools } from './tools/hubspot.js'

/**
* Create a fully configured MCP server with all tools.
Expand All @@ -36,6 +38,8 @@ export function createMcpServer(
registerMappingTools(server, getAuthHeader)
registerBillingTools(server, getAuthHeader)
registerWorkspaceTools(server, getAuthHeader)
registerPostgresTools(server, getAuthHeader)
registerHubSpotTools(server, getAuthHeader)

return server
}
Loading