NeoGraph 0.16.0
A C++20 Graph Agent Engine Library — LangGraph for C++
Loading...
Searching...
No Matches
neograph::mcp::StdioClientConfig Struct Reference

Explicit subprocess boundary for local credentialless MCP adoption. More...

#include <types.h>

Public Attributes

std::chrono::milliseconds cancel_grace {500}
 After a cancelled or timed-out request the session sends notifications/cancelled, waits this long for the server to stop, and then terminates the process tree (stdin closed first, then SIGTERM, then SIGKILL).
 
std::vector< std::pair< std::string, std::string > > environment
 Environment entries for the server.
 
std::size_t max_stderr_bytes = 64 * 1024
 The session drains the server's stderr for as long as it runs and keeps its last max_stderr_bytes bytes; stderr output never ends the session (MCP: a client SHOULD NOT treat stderr as an error).
 
std::size_t max_stdout_text_lines = 1000
 A stdio server writes only JSON-RPC messages to stdout (MCP: it MUST NOT write anything else), but servers print banners and log lines there.
 
std::chrono::milliseconds startup_timeout {10000}
 Startup covers launch through the initialized notification.
 

Detailed Description

Explicit subprocess boundary for local credentialless MCP adoption.

Definition at line 55 of file types.h.

Member Data Documentation

◆ environment

std::vector<std::pair<std::string, std::string> > neograph::mcp::StdioClientConfig::environment

Environment entries for the server.

With replace_environment, they are its whole environment (an empty list is intentionally empty). Without it, the server inherits this process's environment and these entries are added or override inherited ones of the same name. Names must be unique (case-insensitively on Windows), nonempty, and contain neither '=' nor NUL. Values and argv must not contain NUL. A PATH entry is also where argv[0] is looked up.

Definition at line 65 of file types.h.

◆ max_stderr_bytes

std::size_t neograph::mcp::StdioClientConfig::max_stderr_bytes = 64 * 1024

The session drains the server's stderr for as long as it runs and keeps its last max_stderr_bytes bytes; stderr output never ends the session (MCP: a client SHOULD NOT treat stderr as an error).

Captured bytes are never copied into exception messages or host stderr.

Definition at line 84 of file types.h.

◆ max_stdout_text_lines

std::size_t neograph::mcp::StdioClientConfig::max_stdout_text_lines = 1000

A stdio server writes only JSON-RPC messages to stdout (MCP: it MUST NOT write anything else), but servers print banners and log lines there.

The session skips a stdout line that is not JSON, up to max_stdout_text_lines lines and max_stdout_text_bytes bytes (newlines included) per session, and reports the first one on the host's stderr without quoting it. The next line past a limit ends the session with MCPFailure::protocol; 0 for either limit skips nothing. A line is never skipped when it could be a damaged message: one that starts with '{' or a '[' that opens a batch, or mentions "jsonrpc". Those, and JSON that is not an object or a batch, end the session at once.

Definition at line 78 of file types.h.

◆ startup_timeout

std::chrono::milliseconds neograph::mcp::StdioClientConfig::startup_timeout {10000}

Startup covers launch through the initialized notification.

Hardened timeout/cancellation/protocol failures permanently terminate the session.

Definition at line 87 of file types.h.


The documentation for this struct was generated from the following file: