Skip to main content

Chat Flow Design: ChatMCP, OpenAPI, API-first

What is a Chat Flow?

A chat flow defines the sequence and logic of interactions between a user and one or more agents. In ChatMCP, this is modeled as a series of messages, context updates, and tool invocations—each step informed by the current context and API contract.

API-first chat flows

API-first chat flows ensure your conversation logic is always in sync with your backend, thanks to API contracts and the Model Context Protocol (MCP). This allows for dynamic, context-aware interactions that can adapt to user needs and system capabilities.

Core Principles

  • Context-Driven: Every message is processed with full awareness of the current session and context, as defined by MCP.
  • API Integration: All agent actions and tool calls are described and validated using API specs (the contract).
  • Composable: Flows can include direct chats, group chats, and agent-mediated conversations.
  • Memory and State: ChatMCP manages persistent and ephemeral memory for each conversation, enabling continuity and personalization.

How ChatMCP Implements Flows

ChatMCP's architecture (see src/pages/Chat.tsx and src/contexts/ChatContext.tsx) uses React context to manage chats, messages, and agent interactions. Each chat flow:

  • Tracks participants and chat type (direct, group, agent)
  • Manages message history and context state
  • Handles tool and agent invocations via MCPService
  • Supports authentication and retries for secure flows

Best Practices

  • Design your flows with OpenAPI first: Define all possible agent actions and tool invocations in your OpenAPI spec.
  • Use MCP context for personalization: Persist relevant context (e.g., user preferences) to enable smarter flows.
  • Handle authentication gracefully: Use ChatMCP's built-in auth retry mechanism for secure tool calls.
  • Test with real agents and users: Simulate realistic flows to catch edge cases early.

Further Reading