mirror of
https://github.com/simstudioai/sim.git
synced 2026-02-13 16:05:09 -05:00
feat(copilot): copilot mcp + server side copilot execution (#3173)
* v0 * v1 * Basic ss tes * Ss tests * Stuff * Add mcp * mcp v1 * Improvement * Fix * BROKEN * Checkpoint * Streaming * Fix abort * Things are broken * Streaming seems to work but copilot is dumb * Fix edge issue * LUAAAA * Fix stream buffer * Fix lint * Checkpoint * Initial temp state, in the middle of a refactor * Initial test shows diff store still working * Tool refactor * First cleanup pass complete - untested * Continued cleanup * Refactor * Refactor complete - no testing yet * Fix - cursor makes me sad * Fix mcp * Clean up mcp * Updated mcp * Add respond to subagents * Fix definitions * Add tools * Add tools * Add copilot mcp tracking * Fix lint * Fix mcp * Fix * Updates * Clean up mcp * Fix copilot mcp tool names to be sim prefixed * Add opus 4.6 * Fix discovery tool * Fix * Remove logs * Fix go side tool rendering * Update docs * Fix hydration * Fix tool call resolution * Fix * Fix lint * Fix superagent and autoallow integrations * Fix always allow * Update block * Remove plan docs * Fix hardcoded ff * Fix dropped provider * Fix lint * Fix tests * Fix dead messages array * Fix discovery * Fix run workflow * Fix run block * Fix run from block in copilot * Fix lint * Fix skip and mtb * Fix typing * Fix tool call * Bump api version * Fix bun lock * Nuke bad files
This commit is contained in:
committed by
GitHub
parent
e5d30494cb
commit
190f12fd77
@@ -100,11 +100,17 @@ function handleWorkspaceInvitationAPI(
|
||||
*/
|
||||
function handleSecurityFiltering(request: NextRequest): NextResponse | null {
|
||||
const userAgent = request.headers.get('user-agent') || ''
|
||||
const isWebhookEndpoint = request.nextUrl.pathname.startsWith('/api/webhooks/trigger/')
|
||||
const { pathname } = request.nextUrl
|
||||
const isWebhookEndpoint = pathname.startsWith('/api/webhooks/trigger/')
|
||||
const isMcpEndpoint = pathname.startsWith('/api/mcp/')
|
||||
const isMcpOauthDiscoveryEndpoint =
|
||||
pathname.startsWith('/.well-known/oauth-authorization-server') ||
|
||||
pathname.startsWith('/.well-known/oauth-protected-resource')
|
||||
const isSuspicious = SUSPICIOUS_UA_PATTERNS.some((pattern) => pattern.test(userAgent))
|
||||
|
||||
// Block suspicious requests, but exempt webhook endpoints from User-Agent validation
|
||||
if (isSuspicious && !isWebhookEndpoint) {
|
||||
// Block suspicious requests, but exempt machine-to-machine endpoints that may
|
||||
// legitimately omit User-Agent headers (webhooks and MCP protocol discovery/calls).
|
||||
if (isSuspicious && !isWebhookEndpoint && !isMcpEndpoint && !isMcpOauthDiscoveryEndpoint) {
|
||||
logger.warn('Blocked suspicious request', {
|
||||
userAgent,
|
||||
ip: request.headers.get('x-forwarded-for') || 'unknown',
|
||||
|
||||
Reference in New Issue
Block a user