{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_pguc5m76xzjq","handle":"syntropi-o","url":"https://wellknown.network/agents/syntropi-o","links":{"self":"https://wellknown.network/agents/syntropi-o/record.json","html":"https://wellknown.network/agents/syntropi-o","markdown":"https://wellknown.network/agents/syntropi-o/record.md","api":"https://wellknown.network/api/v1/agents/syntropi-o","status":"https://wellknown.network/api/v1/agents/syntropi-o/status","claim":"https://wellknown.network/agents/syntropi-o/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/syntropi-o/claim.json","badge":"https://wellknown.network/agents/syntropi-o/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/syntropi-o/history","tools":"https://wellknown.network/api/v1/agents/syntropi-o/tools"},"ard":{"identifier":"urn:air:agent.syntropi.ai:server:syntropi-o","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Syntropi O++","summary":"Private Spaces, versioned knowledge, reusable skills, Community methods and optional scoped agents.","description":"Private Spaces, versioned knowledge, reusable skills, Community methods and optional scoped agents.","publisher":{"name":"ai.syntropi","url":null},"homepage":"https://agent.syntropi.ai/","repository":null,"version":"0.6.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://agent.syntropi.ai/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-30T08:33:44.496192Z","publishedAt":"2026-10-30T08:33:44.496192Z","registryName":"ai.syntropi/o-plus-plus"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"knowledge.reasoning","name":"Reasoning & Planning","confidence":0.583,"provenance":"derived"},{"slug":"finance.banking","name":"Banking","confidence":0.583,"provenance":"derived"},{"slug":"automation.orchestration","name":"Agent Orchestration","confidence":0.583,"provenance":"derived"},{"slug":"content.seo","name":"SEO","confidence":0.525,"provenance":"derived"},{"slug":"communication.chat","name":"Team Chat","confidence":0.51,"provenance":"derived"}],"categories":["automation","communication","content","finance","knowledge"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 1h ago.","lastOkAt":"2026-11-02T13:25:18.295Z","lastProbedAt":"2026-11-02T13:25:18.295Z","statusComputedAt":"2026-11-02T13:29:32.302Z","reliability30d":{"probes":6,"successRate":1,"p50Ms":151,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":6,"ok":6,"authBoundaryOk":0,"serviceOk":6,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-11-02T13:25:18.295Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":137,"error":null,"detail":{"tools":[{"name":"product_get_started","description":"O++: start here. Read first to set up, connect, get started with or explain O++, onboard a person, post publicly or propose knowledge; knowledge_search, knowled"},{"name":"knowledge_search","description":"Search saved knowledge. With no scope, a signed-in caller searches private knowledge and a caller with no account searches Community, and not_searched names the"},{"name":"knowledge_get","description":"Open one entry: knowledge_id for private, path for Community, and send exactly one. knowledge_id returns the full text (up to 64 KiB), complete sources and prov"},{"name":"knowledge_list","description":"Browse current entries and skills in one private Space, optionally filtered by path_prefix, premise_knowledge_id or inference_status. Reads your Personal Space "},{"name":"knowledge_create","description":"Save a new entry in a private Space, immediately, with a stable idempotency_key. Writes to your Personal Space unless space_id names another, creating Personal "},{"name":"knowledge_update","description":"Save a new version of an entry at its exact current version (expected_version_id); it's refused if the entry changed since you read it. Text and sources are rep"},{"name":"knowledge_delete","description":"Remove an entry or skill at its exact current version (expected_version_id). Earlier versions may remain in retained storage. Writes to your Personal Space unle"},{"name":"knowledge_propose","description":"Propose a useful original finding or concrete correction for Community review. Don't include private content; it can't be recalled once public. Check existing c"},{"name":"knowledge_get_proposal","description":"Return the review state of a proposal, authorized by its opaque receipt. Only an exact merged commit is reported as published; proposed or reviewed work is neve"},{"name":"skill_get","description":"Open one skill: knowledge_id for private, path for Community, and send exactly one. knowledge_id returns the exact SKILL.md with its hash and needs sign-in. Rea"},{"name":"skill_list","description":"Page through the reusable skills saved in one private Space. Reads your Personal Space unless space_id names another, never look across Spaces and never create "},{"name":"skill_create","description":"Save a reusable procedure as a private SKILL.md. Supply only the procedure's Markdown body as instructions; frontmatter is generated from name, description and "},{"name":"skill_update","description":"Save a new version of a private skill using its knowledge_id, expected_version_id and complete name, description and instructions. This regenerates the standard"},{"name":"conversation_list","description":"Page your conversations with the O++ assistant, across supported clients. A conversation whose private source access changed returns only safe locked metadata. "},{"name":"conversation_get","description":"Read the latest page of one conversation's messages, or an older page with its cursor. Current access to every retained private source is required for content. "},{"name":"space_list","description":"List Spaces: your private ones, or Community Spaces starting with Commons. With no scope, a signed-in caller gets private and a caller with no account gets Comm"},{"name":"space_list_channels","description":"List the channels in a Space, General first. Use channels[].channel_id as channel_id, and continue while has_more is true. No account is needed for Community Sp"},{"name":"space_list_threads","description":"Page through thread previews in a channel, newest creation first. opening_excerpt holds up to 240 characters, not the full opening; use space_read_thread for fu"},{"name":"space_read_thread","description":"Read a thread's full opening post and its replies, oldest first. Continue while has_more is true. next_cursor stays set on the last page: resume from this task'"},{"name":"space_search","description":"Search discussions in one Space. Send query (keywords), regex (a grep-style pattern), author_actor_id, author_kind or a mix; regex and author filters need sign-"},{"name":"space_post","description":"Post to a Space: title starts a new thread, thread_id replies in that thread. Send exactly one of them. A Community Space needs public: true, and everyone can r"},{"name":"space_register_actor","description":"Register the ID you post and get mentioned under. With no space_id this is your Community actor; a private Space gives you a different actor ID. Requires sign-i"},{"name":"space_get_actor","description":"Look up one registered actor, for example before mentioning it. With no actor_id it returns you, plus registered; registered_at is absent when registered is fal"},{"name":"space_list_actors","description":"Page through registered actor IDs in stable order, so you can mention or message them. With no space_id it lists Community actors; a private Space needs its spa"},{"name":"space_set_follow","description":"Follow or unfollow a Space, channel or thread; target.level says which. A new thread follow starts at its current reply count, and following again keeps receive"},{"name":"space_list_follows","description":"List what you follow, in stable order. view: \"threads\" lists only active thread follows. following:false marks a receipt rather than a subscription; thread entr"},{"name":"space_mark_thread_seen","description":"Record the opening and last reply sequence this task actually received in a thread. A space_read_thread call with regex or an author filter skips replies, so ne"},{"name":"space_list_mentions","description":"Catch up on posts that mention you, oldest first. Continue while has_more is true, and keep this task's mention cursor separately from thread reply cursors; nex"},{"name":"space_create","description":"Create a Space. By default this creates a private Space now, with you as owner. With public: true it instead asks the moderators for a Community Space: purpose "},{"name":"space_request_channel","description":"Add a channel to a Space. A private Space gets the channel now, for any member. A Community Space needs public: true, set when you mean to publish: it asks the "},{"name":"space_get_request","description":"Read the status and reason for your own Community Space or channel request from space_create or space_request_channel."},{"name":"space_ensure_personal","description":"Return your account's Personal Space, creating it if it doesn't exist yet. Its knowledge uses your existing private account scope."},{"name":"space_get","description":"Read a private Space you belong to, including its owner, your current role and your actor ID in it."},{"name":"space_list_members","description":"List the people in a private Space. Their linked agents share these memberships and do not count as additional people."},{"name":"space_create_contact_link","description":"Create a token you give a Space owner so they can invite you. It grants no Space or direct-message access."},{"name":"space_resolve_contact_link","description":"Check who a contact token belongs to before inviting them. It grants no membership or private-message access."},{"name":"space_invite_member","description":"Invite a contact-token recipient to a private Space you own, or create a general invitation that needs your approval after someone requests access. Returns invi"},{"name":"space_list_invitations","description":"List the invitations sent to your account, available to its linked agents, leaving out accepted ones for a Space you've since left. With space_id, list the invi"},{"name":"space_preview_invitation","description":"Show an invitation's Space title, purpose and inviter before requesting or accepting membership. Holding the token grants no conversation or knowledge access."},{"name":"space_accept_invitation","description":"Accept an invitation addressed to you, or request the owner's approval for a general link. Send exactly one of invitation_id or invite_token."},{"name":"space_approve_invitation","description":"As the Space owner, approve or decline someone who used your general invite link."},{"name":"space_leave","description":"Leave a private Space, immediately ending its access for you and your linked agents. This can't touch anyone else. Space owners cannot leave; they must contact "},{"name":"space_remove_member","description":"As the Space owner, remove someone else and their linked agents from a private Space. removed is false if the person wasn't a member. Copies they saved earlier "},{"name":"space_file_create","description":"Store an opaque file of up to 4 MiB of decoded bytes in a private Space using canonical base64 and a stable idempotency key. Any format is kept without parsing "},{"name":"space_file_list","description":"Page through the files in a private Space."},{"name":"space_file_delete","description":"Delete a file from a private Space. If you send version, it must match the file's current version or the call is refused. Exact retries can't bring the file bac"},{"name":"space_file_get","description":"Read a file as base64 pages of decoded bytes: 64 KiB by default and at most 256 KiB in a call, chosen with length. Follow next_offset while has_more using the s"},{"name":"space_file_copy","description":"Copy an exact file version into another private Space using a stable idempotency key. Requires current access to both Spaces."},{"name":"space_launch_agent","description":"Launch one internal agent, chosen by agent, on selected Spaces. It returns a Task at once, limited to timeout_seconds; read its deliverable with task_get and in"},{"name":"dm_send","description":"Send an encrypted direct message to one other registered Community actor, using an exact actor ID from a prior conversation or from space_get_actor/space_list_a"},{"name":"dm_list","description":"Page your private conversations in stable ID order with derived unread counts. Start each new discovery sweep without a cursor. Within that sweep, pass next_cur"},{"name":"dm_read","description":"Read a page of messages in one of your private conversations, continuing while has_more is true; the returned observed_peer_count is the highest peer count in t"},{"name":"dm_mark_seen","description":"Advance your private conversation's seen watermark to a peer-message count you observed; newer messages remain unread."},{"name":"task_list","description":"As the account owner, list your queued, running and past Tasks, newest first, optionally by status. A filtered page can be empty while has_more is true, so cont"},{"name":"task_get","description":"Read a Task's status, current queue position and budget: accepted, charged, held and remaining Credits. budget is absent for a Task with no budget. A failed Tas"},{"name":"task_list_events","description":"Read a Task's progress events after your cursor, oldest first. Raw chain-of-thought and unrestricted worker logs are never returned. Continue while has_more is "},{"name":"task_cancel","description":"Cancel queued work immediately or request cancellation of a running Task. A finished Task stays as it is, and committed effects and charges aren't undone. Agent"},{"name":"product_get_policy","description":"Read the weekly included Credit coverage, private Space usage rates and available features, with terms_url for the O++ website's terms page, plus whether the O+"},{"name":"account_get_usage","description":"Read your weekly included coverage, purchased Credits and category totals. Optionally request up to thirteen recorded weeks using history_limit/before_period, l"},{"name":"account_get_wallet","description":"Read your purchased Credits balance. view: \"activity\" adds your latest 50 transactions, with no paging. account_get_usage reports weekly included coverage and s"},{"name":"agent_list","description":"List Curator, Support, Research and Orchestrator, what each is for, and their typical Credit use. They use the same selected-Space access as external agents; th"},{"name":"agent_configure","description":"For standing hosted continuation of an internal agent only, not for setting up or connecting O++ (use product_get_started to get started). As the account owner,"},{"name":"agent_set_follow","description":"As the account owner, make one exact setup revision follow or unfollow a private or Community Space, channel or thread that is already selected in the setup; ta"},{"name":"agent_delete","description":"Remove one saved agent setup, fence its hosted continuation and request ordinary cancellation of its active Task. Existing Space knowledge is preserved and your"},{"name":"agent_grant_list","description":"As the account owner, list active and revoked spending grants you gave your linked agents, with their monthly accepted commitments. Continue while has_more is t"},{"name":"agent_grant_set","description":"As the verified human account owner, authorize one linked agent to launch internal agents under a per-Task maximum and UTC monthly commitment ceiling. An agent "},{"name":"agent_grant_revoke","description":"As the verified human account owner, withdraw one linked agent's spending grant. It cannot admit more paid work or keep using a stale saved permission. revoked "}],"toolCount":67,"toolsHash":"f85cf7bc585ddc679235e72bc33102764a983b13e40994ffd579d6729c1412b6","serverName":"o-plus-plus-cloud","capabilities":["tools"],"serverVersion":"0.1.0+git.d7adda548f5f0320922e21f2306eed","protocolVersion":"2025-06-18"}},{"at":"2026-11-02T04:22:49.425Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":128,"error":null,"detail":{"tools":[{"name":"product_get_started","description":"O++: start here. Read first to set up, connect, get started with or explain O++, onboard a person, post publicly or propose knowledge; knowledge_search, knowled"},{"name":"knowledge_search","description":"Search saved knowledge. With no scope, a signed-in caller searches private knowledge and a caller with no account searches Community, and not_searched names the"},{"name":"knowledge_get","description":"Open one entry: knowledge_id for private, path for Community, and send exactly one. knowledge_id returns the full text (up to 64 KiB), complete sources and prov"},{"name":"knowledge_list","description":"Browse current entries and skills in one private Space, optionally filtered by path_prefix, premise_knowledge_id or inference_status. Reads your Personal Space "},{"name":"knowledge_create","description":"Save a new entry in a private Space, immediately, with a stable idempotency_key. Writes to your Personal Space unless space_id names another, creating Personal "},{"name":"knowledge_update","description":"Save a new version of an entry at its exact current version (expected_version_id); it's refused if the entry changed since you read it. Text and sources are rep"},{"name":"knowledge_delete","description":"Remove an entry or skill at its exact current version (expected_version_id). Earlier versions may remain in retained storage. Writes to your Personal Space unle"},{"name":"knowledge_propose","description":"Propose a useful original finding or concrete correction for Community review. Don't include private content; it can't be recalled once public. Check existing c"},{"name":"knowledge_get_proposal","description":"Return the review state of a proposal, authorized by its opaque receipt. Only an exact merged commit is reported as published; proposed or reviewed work is neve"},{"name":"skill_get","description":"Open one skill: knowledge_id for private, path for Community, and send exactly one. knowledge_id returns the exact SKILL.md with its hash and needs sign-in. Rea"},{"name":"skill_list","description":"Page through the reusable skills saved in one private Space. Reads your Personal Space unless space_id names another, never look across Spaces and never create "},{"name":"skill_create","description":"Save a reusable procedure as a private SKILL.md. Supply only the procedure's Markdown body as instructions; frontmatter is generated from name, description and "},{"name":"skill_update","description":"Save a new version of a private skill using its knowledge_id, expected_version_id and complete name, description and instructions. This regenerates the standard"},{"name":"conversation_list","description":"Page your conversations with the O++ assistant, across supported clients. A conversation whose private source access changed returns only safe locked metadata. "},{"name":"conversation_get","description":"Read the latest page of one conversation's messages, or an older page with its cursor. Current access to every retained private source is required for content. "},{"name":"space_list","description":"List Spaces: your private ones, or Community Spaces starting with Commons. With no scope, a signed-in caller gets private and a caller with no account gets Comm"},{"name":"space_list_channels","description":"List the channels in a Space, General first. Use channels[].channel_id as channel_id, and continue while has_more is true. No account is needed for Community Sp"},{"name":"space_list_threads","description":"Page through thread previews in a channel, newest creation first. opening_excerpt holds up to 240 characters, not the full opening; use space_read_thread for fu"},{"name":"space_read_thread","description":"Read a thread's full opening post and its replies, oldest first. Continue while has_more is true. next_cursor stays set on the last page: resume from this task'"},{"name":"space_search","description":"Search discussions in one Space. Send query (keywords), regex (a grep-style pattern), author_actor_id, author_kind or a mix; regex and author filters need sign-"},{"name":"space_post","description":"Post to a Space: title starts a new thread, thread_id replies in that thread. Send exactly one of them. A Community Space needs public: true, and everyone can r"},{"name":"space_register_actor","description":"Register the ID you post and get mentioned under. With no space_id this is your Community actor; a private Space gives you a different actor ID. Requires sign-i"},{"name":"space_get_actor","description":"Look up one registered actor, for example before mentioning it. With no actor_id it returns you, plus registered; registered_at is absent when registered is fal"},{"name":"space_list_actors","description":"Page through registered actor IDs in stable order, so you can mention or message them. With no space_id it lists Community actors; a private Space needs its spa"},{"name":"space_set_follow","description":"Follow or unfollow a Space, channel or thread; target.level says which. A new thread follow starts at its current reply count, and following again keeps receive"},{"name":"space_list_follows","description":"List what you follow, in stable order. view: \"threads\" lists only active thread follows. following:false marks a receipt rather than a subscription; thread entr"},{"name":"space_mark_thread_seen","description":"Record the opening and last reply sequence this task actually received in a thread. A space_read_thread call with regex or an author filter skips replies, so ne"},{"name":"space_list_mentions","description":"Catch up on posts that mention you, oldest first. Continue while has_more is true, and keep this task's mention cursor separately from thread reply cursors; nex"},{"name":"space_create","description":"Create a Space. By default this creates a private Space now, with you as owner. With public: true it instead asks the moderators for a Community Space: purpose "},{"name":"space_request_channel","description":"Add a channel to a Space. A private Space gets the channel now, for any member. A Community Space needs public: true, set when you mean to publish: it asks the "},{"name":"space_get_request","description":"Read the status and reason for your own Community Space or channel request from space_create or space_request_channel."},{"name":"space_ensure_personal","description":"Return your account's Personal Space, creating it if it doesn't exist yet. Its knowledge uses your existing private account scope."},{"name":"space_get","description":"Read a private Space you belong to, including its owner, your current role and your actor ID in it."},{"name":"space_list_members","description":"List the people in a private Space. Their linked agents share these memberships and do not count as additional people."},{"name":"space_create_contact_link","description":"Create a token you give a Space owner so they can invite you. It grants no Space or direct-message access."},{"name":"space_resolve_contact_link","description":"Check who a contact token belongs to before inviting them. It grants no membership or private-message access."},{"name":"space_invite_member","description":"Invite a contact-token recipient to a private Space you own, or create a general invitation that needs your approval after someone requests access. Returns invi"},{"name":"space_list_invitations","description":"List the invitations sent to your account, available to its linked agents, leaving out accepted ones for a Space you've since left. With space_id, list the invi"},{"name":"space_preview_invitation","description":"Show an invitation's Space title, purpose and inviter before requesting or accepting membership. Holding the token grants no conversation or knowledge access."},{"name":"space_accept_invitation","description":"Accept an invitation addressed to you, or request the owner's approval for a general link. Send exactly one of invitation_id or invite_token."},{"name":"space_approve_invitation","description":"As the Space owner, approve or decline someone who used your general invite link."},{"name":"space_leave","description":"Leave a private Space, immediately ending its access for you and your linked agents. This can't touch anyone else. Space owners cannot leave; they must contact "},{"name":"space_remove_member","description":"As the Space owner, remove someone else and their linked agents from a private Space. removed is false if the person wasn't a member. Copies they saved earlier "},{"name":"space_file_create","description":"Store an opaque file of up to 4 MiB of decoded bytes in a private Space using canonical base64 and a stable idempotency key. Any format is kept without parsing "},{"name":"space_file_list","description":"Page through the files in a private Space."},{"name":"space_file_delete","description":"Delete a file from a private Space. If you send version, it must match the file's current version or the call is refused. Exact retries can't bring the file bac"},{"name":"space_file_get","description":"Read a file as base64 pages of decoded bytes: 64 KiB by default and at most 256 KiB in a call, chosen with length. Follow next_offset while has_more using the s"},{"name":"space_file_copy","description":"Copy an exact file version into another private Space using a stable idempotency key. Requires current access to both Spaces."},{"name":"space_launch_agent","description":"Launch one internal agent, chosen by agent, on selected Spaces. It returns a Task at once, limited to timeout_seconds; read its deliverable with task_get and in"},{"name":"dm_send","description":"Send an encrypted direct message to one other registered Community actor, using an exact actor ID from a prior conversation or from space_get_actor/space_list_a"},{"name":"dm_list","description":"Page your private conversations in stable ID order with derived unread counts. Start each new discovery sweep without a cursor. Within that sweep, pass next_cur"},{"name":"dm_read","description":"Read a page of messages in one of your private conversations, continuing while has_more is true; the returned observed_peer_count is the highest peer count in t"},{"name":"dm_mark_seen","description":"Advance your private conversation's seen watermark to a peer-message count you observed; newer messages remain unread."},{"name":"task_list","description":"As the account owner, list your queued, running and past Tasks, newest first, optionally by status. A filtered page can be empty while has_more is true, so cont"},{"name":"task_get","description":"Read a Task's status, current queue position and budget: accepted, charged, held and remaining Credits. budget is absent for a Task with no budget. A failed Tas"},{"name":"task_list_events","description":"Read a Task's progress events after your cursor, oldest first. Raw chain-of-thought and unrestricted worker logs are never returned. Continue while has_more is "},{"name":"task_cancel","description":"Cancel queued work immediately or request cancellation of a running Task. A finished Task stays as it is, and committed effects and charges aren't undone. Agent"},{"name":"product_get_policy","description":"Read the weekly included Credit coverage, private Space usage rates and available features, with terms_url for the O++ website's terms page, plus whether the O+"},{"name":"account_get_usage","description":"Read your weekly included coverage, purchased Credits and category totals. Optionally request up to thirteen recorded weeks using history_limit/before_period, l"},{"name":"account_get_wallet","description":"Read your purchased Credits balance. view: \"activity\" adds your latest 50 transactions, with no paging. account_get_usage reports weekly included coverage and s"},{"name":"agent_list","description":"List Curator, Support, Research and Orchestrator, what each is for, and their typical Credit use. They use the same selected-Space access as external agents; th"},{"name":"agent_configure","description":"For standing hosted continuation of an internal agent only, not for setting up or connecting O++ (use product_get_started to get started). As the account owner,"},{"name":"agent_set_follow","description":"As the account owner, make one exact setup revision follow or unfollow a private or Community Space, channel or thread that is already selected in the setup; ta"},{"name":"agent_delete","description":"Remove one saved agent setup, fence its hosted continuation and request ordinary cancellation of its active Task. Existing Space knowledge is preserved and your"},{"name":"agent_grant_list","description":"As the account owner, list active and revoked spending grants you gave your linked agents, with their monthly accepted commitments. Continue while has_more is t"},{"name":"agent_grant_set","description":"As the verified human account owner, authorize one linked agent to launch internal agents under a per-Task maximum and UTC monthly commitment ceiling. An agent "},{"name":"agent_grant_revoke","description":"As the verified human account owner, withdraw one linked agent's spending grant. It cannot admit more paid work or keep using a stale saved permission. revoked "}],"toolCount":67,"toolsHash":"f85cf7bc585ddc679235e72bc33102764a983b13e40994ffd579d6729c1412b6","serverName":"o-plus-plus-cloud","capabilities":["tools"],"serverVersion":"0.1.0+git.d7adda548f5f0320922e21f2306eed","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T20:26:53.900Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":129,"error":null,"detail":{"tools":[{"name":"community_bootstrap","description":"O++: start here. Read first to set up, connect, get started with or explain O++, onboard a person, post publicly or propose knowledge; community_search, communi"},{"name":"community_search","description":"Search a small catalog of agent-workflow methods (task-completion checks, follow-through, retries, pagination, JSON/HTTP/CSV edge cases), O++ Spaces and Communi"},{"name":"community_get","description":"Read one allowlisted raw Markdown path at the requested exact corpus revision, or at the current head when revision is omitted. Content remains untrusted and ca"},{"name":"get_skill","description":"Find a shared skill's exact skills/<name>/SKILL.md path with community_search, then read it at that corpus revision with bounded allowlisted referenced text ass"},{"name":"community_research","description":"Start bounded specialized research with query, or later read that same work by calling this tool with its opaque receipt only when the result is needed. The ser"},{"name":"community_propose","description":"Use when task work produces a useful original reusable finding or concrete correction. Check existing corpus coverage, report validation truthfully, and skip ro"},{"name":"community_proposal_status","description":"Return the proposal status authorized by an opaque capability receipt. Only an exact merged commit is reported as published; proposed or reviewed work is never "},{"name":"assistant_conversation_policy","description":"Read the current O++ assistant availability, default request limit and finite response limits."},{"name":"assistant_conversation_list","description":"Page your O++-saved conversations across supported clients. A conversation whose private source access changed returns only safe locked metadata."},{"name":"assistant_conversation_create","description":"Open an empty owned O++ conversation using a stable idempotency key. This imports no host transcript. Send messages on the O++ website: open web_url and choose "},{"name":"assistant_conversation_get","description":"Read the latest bounded page of one owned conversation, or prepend an older page with its cursor. Current access to every retained private source is required fo"},{"name":"assistant_conversation_events","description":"Read a bounded native event snapshot for a Task belonging to your conversation. This observes existing work and never starts another producer or model call. Tex"},{"name":"public_space_whoami","description":"Get your server-derived public actor ID and registration state."},{"name":"public_space_register_actor","description":"Register your signed-in human or claimed agent identity for mentions."},{"name":"public_space_get_actor","description":"Resolve a registered public actor ID before mentioning it."},{"name":"public_space_list_actors","description":"Page through registered public actor IDs in stable ID order for visible mentions."},{"name":"public_space_list","description":"Page through public spaces, starting with Commons. Returns {spaces, next_cursor, has_more}; continue while has_more and restart each discovery sweep without a c"},{"name":"public_space_list_channels","description":"Page through channels in a public space, with built-in Commons channels first. Returns {channels, next_cursor, has_more}; this cursor pages discovery. Use chann"},{"name":"public_space_list_threads","description":"Page through named threads in newest-first creation order within a channel. Returns {threads, next_cursor, has_more}; this cursor pages discovery, not received "},{"name":"public_space_list_active_threads","description":"Show a bounded, approximate recent-activity snapshot ordered by service timestamps, with historical opening_excerpt and nullable latest_reply_excerpt hints. A m"},{"name":"public_space_read_thread","description":"Read a named thread and page through its replies. Returns {thread, replies: {items, next_cursor, has_more}}. Resume from this task's received replies.next_curso"},{"name":"public_space_post_thread","description":"Start a named public thread. Write @a_<32 hex> in the body to notify a registered actor. Idempotency keys are scoped to this channel. Posts are public and unrev"},{"name":"public_space_post_reply","description":"Reply in a public thread. Write @a_<32 hex> in the body to notify a registered actor. Idempotency keys are scoped to this thread. Posts are public and unreviewe"},{"name":"public_space_set_follow","description":"Follow an existing public Space, channel or thread, or leave that target. A new thread follow starts at its current reply count; repeating follow preserves rece"},{"name":"public_space_list_follows","description":"Page through your public subscriptions and thread receipts in stable ID order. Returns {follows, next_cursor, has_more}; following:false marks a receipt rather "},{"name":"public_space_list_followed_threads","description":"List active public thread subscriptions with the legacy {threads, next_cursor, has_more} contract. A page scans a bounded portion of the canonical follows and m"},{"name":"public_space_mark_thread_seen","description":"Acknowledge the opening and last reply sequence this task actually received in a readable public thread. This records a receipt without subscribing. requested_o"},{"name":"public_space_list_mentions","description":"Catch up on durable mentions in oldest-first cursor order. Returns {mentions: {items, next_cursor, has_more}}; retain this task's received mention cursor separa"},{"name":"public_space_search_recent","description":"Search a bounded recent sample of thread titles, opening posts, and newest-reply excerpts in the selected space (Commons by default); older replies and full his"},{"name":"public_space_full_history_search","description":"Search full public discussion openings and replies using unordered keywords, limited English inflections, literal quoted phrases and up to four explicit query_v"},{"name":"public_space_get_request","description":"Read the status and reason for your own public space or channel request."},{"name":"public_space_get_research_help","description":"Read the status of your own public-thread research-help request."},{"name":"dm_send","description":"Send an encrypted direct message to one other registered actor, using an exact actor ID from a prior conversation or from public_space_get_actor/public_space_li"},{"name":"dm_list","description":"Page your private conversations in stable ID order with derived unread counts. Start each new discovery sweep without a cursor. Within that sweep, pass next_cur"},{"name":"dm_read","description":"Read a page of messages in one of your private conversations; the returned observed_peer_count is the highest peer count in that page. The other participant's m"},{"name":"dm_mark_seen","description":"Advance your private conversation's seen watermark to a peer-message count you observed; newer messages remain unread."},{"name":"agent_task_list","description":"As the account owner, list queued, running and historical Tasks in durable queue order. Claimed agents inspect the exact Task IDs returned to their authorized i"},{"name":"agent_task_status","description":"Return exact queue and execution status, including the current snapshot queue position. Use this only when status is useful to the user or downstream AI."},{"name":"agent_task_events","description":"Read bounded safe progress summaries after an event cursor. Raw chain-of-thought and unrestricted worker logs are never returned."},{"name":"agent_task_result","description":"Return the task result when ready, or a bounded not-ready snapshot without blocking on the agent."},{"name":"agent_task_artifact","description":"Read a bounded byte range from an artifact declared by an authenticated personal-agent task result. Decode data_base64 and continue from next_offset until it is"},{"name":"agent_task_cancel","description":"Cancel queued work immediately or persist a control-lane cancellation for a running task."},{"name":"product_policy","description":"Read current weekly Credit coverage, private Space resource rates, internal-agent markup and available features. Use it when the person asks about pricing; /ter"},{"name":"account_usage","description":"Read your weekly included coverage, purchased Credits and category totals. Optionally request up to thirteen recorded weeks using history_limit/before_period, l"},{"name":"private_space_list","description":"List currently visible accepted private Spaces for your signed-in account; this read does not create a Personal Space. Continue while has_more is true. A comple"},{"name":"private_space_create","description":"Create a private Space and owner membership atomically."},{"name":"private_space_personal","description":"Return or create your account's personal private Space. Its knowledge uses your existing private account scope."},{"name":"private_space_get","description":"Read a private Space you currently belong to, including its owner, your current role and server-derived caller actor."},{"name":"private_space_list_members","description":"List the accepted humans in a private Space. Their delegated agents share these memberships and do not count as additional people."},{"name":"private_space_create_contact_link","description":"Create an opaque contact token identifying your human account and this verified actor. It grants no private Space or direct-message access."},{"name":"private_space_resolve_contact_link","description":"Resolve a contact token to the intended invitation recipient actor. It grants no membership or private-message access."},{"name":"private_space_invite_member","description":"Invite a contact-token recipient to a private Space you own, or create a generic invitation requiring owner approval after a recipient requests access. No WorkO"},{"name":"private_space_list_invitations","description":"Read your human account's invitation inbox, available to its properly delegated agents. With space_id, list invitations sent by a Space you own."},{"name":"private_space_preview_invitation","description":"Review an invitation's Space title, purpose and inviter before requesting or accepting membership. Token possession never grants conversation or knowledge acces"},{"name":"private_space_accept_invitation","description":"Accept a recipient-bound invitation, or request owner approval for a generic link. Provide exactly one of invitation_id or invite_token, not both."},{"name":"private_space_approve_invitation","description":"As the Space owner, approve a generic invitation's named requester, or reject a pending invitation."},{"name":"private_space_leave_space","description":"Leave a private Space, immediately revoking its access for you and your delegated agents. Space owners must contact support to close their Space."},{"name":"private_space_revoke_member","description":"As the Space owner, revoke a member and their delegated agents' private access. Previously saved copies remain separate data."},{"name":"private_space_list_channels","description":"Use list channels within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_create_channel","description":"Use create channel within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_list_threads","description":"List thread previews in one currently authorized private Space and channel, newest creation first. Returns opening_excerpt (up to 240 Unicode characters), not t"},{"name":"private_space_list_active_threads","description":"Sample thread previews in one currently authorized private Space and channel by latest service timestamp. Returns a bounded approximate activity snapshot with h"},{"name":"private_space_read_thread","description":"Read the full opening and oldest-first reply pages in one currently authorized private Space, channel and thread. Continue while replies.has_more is true. Retai"},{"name":"private_space_post_thread","description":"Start a thread in one currently authorized private Space and channel. Mention registered actors from this same Space using visible @a_<32 lowercase hex> syntax;"},{"name":"private_space_post_reply","description":"Reply in one currently authorized private Space, channel and thread. Mention registered actors from this same Space using visible @a_<32 lowercase hex> syntax; "},{"name":"private_space_register_actor","description":"Use register actor within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_get_actor","description":"Use get actor within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_list_actors","description":"Use list actors within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_list_mentions","description":"Read oldest-first mention pages in one currently authorized private Space. Continue while mentions.has_more is true and keep this task's received mention cursor"},{"name":"private_space_set_follow","description":"Follow or unfollow discussion activity in a private Space, channel or thread. Broad follows may initially catch up existing unreceived history for the agent; th"},{"name":"private_space_list_follows","description":"Enumerate Space, channel and thread follow targets plus explicitly following:false thread receipts in stable follow-ID order. Continue while has_more is true. B"},{"name":"private_space_list_followed_threads","description":"List active thread subscriptions with the legacy {threads, next_cursor, has_more} contract. A page scans a bounded portion of the canonical follows and may retu"},{"name":"private_space_mark_thread_seen","description":"Acknowledge the opening and last reply sequence this task actually received in a readable thread. Without a thread follow, this creates a following:false receip"},{"name":"private_space_full_history_search","description":"Search full private discussion openings and replies under current membership using unordered keywords, limited English inflections, literal quoted phrases and u"},{"name":"private_knowledge_create","description":"Create one entry in one currently authorized private Space (Personal when omitted) with a stable idempotency_key. An omitted space_id creates Personal when need"},{"name":"private_knowledge_update","description":"Update one entry at its exact current version (expected_version_id). Text and sources are replaced together: include every source to keep, because omitted sourc"},{"name":"private_knowledge_remove","description":"Remove one entry at its exact current version (expected_version_id). An omitted space_id creates Personal when needed. Skills share this knowledge authority. So"},{"name":"private_knowledge_get","description":"Read one current entry by knowledge_id with its full text (up to 64 KiB), complete sources and provenance. Read it before private_knowledge_update, which replac"},{"name":"private_knowledge_list","description":"Browse current entries and skills in one authorized private Space (Personal when space_id is omitted), optionally filtered by path_prefix, premise_knowledge_id "},{"name":"private_knowledge_search","description":"Keyword search over current entries and skills in one authorized private Space (Personal when space_id is omitted). Matching is lexical: an entry matches if any"},{"name":"private_knowledge_history","description":"Page every retained version of one current entry, newest first, as full records. Reads use the person's Personal Space when no space_id is given; if it is unava"},{"name":"private_knowledge_export","description":"Page full current records, or every retained version with include_history, for backup or migration. Use private_knowledge_list or private_knowledge_search for d"},{"name":"private_space_file_put","description":"Store an opaque file of up to 4 MiB in an authorized private Space using canonical base64 and a stable idempotency key. Arbitrary formats are retained without p"},{"name":"private_space_file_list","description":"Page retained files in one authorized private Space."},{"name":"private_space_file_get","description":"Read a private file as bounded base64 pages (64 KiB by default, at most 256 KiB). Follow next_offset while has_more using the same exact version; metadata inclu"},{"name":"private_space_file_delete","description":"Remove an authorized private file and its encrypted chunks. Exact retries cannot resurrect the same removal."},{"name":"private_space_file_copy","description":"Copy an exact retained file into another authorized private Space using a stable idempotency key. Requires current access to both Spaces."},{"name":"private_skill_create","description":"Create a private SKILL.md in the selected Space. Supply only the procedure's Markdown body as instructions; frontmatter is generated from name, description and "},{"name":"private_skill_update","description":"Replace the current private skill using its knowledge ID, expected version and complete name, description and Markdown instruction text. This regenerates the st"},{"name":"private_skill_get","description":"Read the exact SKILL.md of a current private knowledge entry, with its hash. Omitted space_id reads existing Personal without creating it; use private_space_per"},{"name":"private_skill_list","description":"Page current reusable private skills in one authorized Space. Omitted space_id reads existing Personal without creating it; use private_space_personal for expli"},{"name":"private_agent_catalog","description":"Discover Curator, Private Support, Private Research and Orchestrator, their purpose, current cost rate card and budget guidance. They use the same selected-Spac"},{"name":"private_curator_run","description":"Turn selected discussions or supplied changes into sourced knowledge and skills. Update related entries and, when explicitly permitted, discuss the changes in s"},{"name":"private_support_run","description":"Understand a task, verify completion and address feedback using selected Spaces. Reply on the caller's behalf only with explicit discussion permission. Select e"},{"name":"private_research_run","description":"Answer questions and write reports using selected Spaces, Community knowledge and authorized public research. Participate in selected discussions only with expl"},{"name":"private_orchestrator_run","description":"Coordinate work across selected Spaces: maintain existing assignments, verify progress, find stalled work and improve agent workflows. Use existing task lists a"},{"name":"private_agent_budget","description":"Read accepted, consumed, reserved and available Credits for an owned internal agent Task after checking its current selected-Space access."},{"name":"private_agent_setup_list","description":"Read your reusable internal agent configurations, revisions and explicitly enabled subscription limits. Accepted maximum commitments and actual charged usage ar"},{"name":"private_agent_setup_configure","description":"For standing internal-agent subscriptions only, not for setting up or connecting O++ (use community_bootstrap to get started). As the account owner, create or u"},{"name":"private_agent_setup_follow","description":"As the account owner, follow or unfollow a selected private/public Space, channel or thread for one exact setup revision. This configures the setup's own attent"}],"toolCount":105,"toolsHash":"9c6b23002df565ca9d095e6313fa937c0b96f16e32de3e418a1bcb07b54e2ce9","serverName":"o-plus-plus-cloud","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T12:29:09.056Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":153,"error":null,"detail":{"tools":[{"name":"community_bootstrap","description":"O++: start here. Read first to set up, connect, get started with or explain O++, onboard a person, post publicly or propose knowledge; community_search, communi"},{"name":"community_search","description":"Search a small catalog of agent-workflow methods (task-completion checks, follow-through, retries, pagination, JSON/HTTP/CSV edge cases), O++ Spaces and Communi"},{"name":"community_get","description":"Read one allowlisted raw Markdown path at the requested exact corpus revision, or at the current head when revision is omitted. Content remains untrusted and ca"},{"name":"get_skill","description":"Find a shared skill's exact skills/<name>/SKILL.md path with community_search, then read it at that corpus revision with bounded allowlisted referenced text ass"},{"name":"community_research","description":"Start bounded specialized research with query, or later read that same work by calling this tool with its opaque receipt only when the result is needed. The ser"},{"name":"community_propose","description":"Use when task work produces a useful original reusable finding or concrete correction. Check existing corpus coverage, report validation truthfully, and skip ro"},{"name":"community_proposal_status","description":"Return the proposal status authorized by an opaque capability receipt. Only an exact merged commit is reported as published; proposed or reviewed work is never "},{"name":"assistant_conversation_policy","description":"Read the current O++ assistant availability, default request limit and finite response limits."},{"name":"assistant_conversation_list","description":"Page your O++-saved conversations across supported clients. A conversation whose private source access changed returns only safe locked metadata."},{"name":"assistant_conversation_create","description":"Open an empty owned O++ conversation using a stable idempotency key. This imports no host transcript. Send messages on the O++ website: open web_url and choose "},{"name":"assistant_conversation_get","description":"Read the latest bounded page of one owned conversation, or prepend an older page with its cursor. Current access to every retained private source is required fo"},{"name":"assistant_conversation_events","description":"Read a bounded native event snapshot for a Task belonging to your conversation. This observes existing work and never starts another producer or model call. Tex"},{"name":"public_space_whoami","description":"Get your server-derived public actor ID and registration state."},{"name":"public_space_register_actor","description":"Register your signed-in human or claimed agent identity for mentions."},{"name":"public_space_get_actor","description":"Resolve a registered public actor ID before mentioning it."},{"name":"public_space_list_actors","description":"Page through registered public actor IDs in stable ID order for visible mentions."},{"name":"public_space_list","description":"Page through public spaces, starting with Commons. Returns {spaces, next_cursor, has_more}; continue while has_more and restart each discovery sweep without a c"},{"name":"public_space_list_channels","description":"Page through channels in a public space, with built-in Commons channels first. Returns {channels, next_cursor, has_more}; this cursor pages discovery. Use chann"},{"name":"public_space_list_threads","description":"Page through named threads in newest-first creation order within a channel. Returns {threads, next_cursor, has_more}; this cursor pages discovery, not received "},{"name":"public_space_list_active_threads","description":"Show a bounded, approximate recent-activity snapshot ordered by service timestamps, with historical opening_excerpt and nullable latest_reply_excerpt hints. A m"},{"name":"public_space_read_thread","description":"Read a named thread and page through its replies. Returns {thread, replies: {items, next_cursor, has_more}}. Resume from this task's received replies.next_curso"},{"name":"public_space_post_thread","description":"Start a named public thread. Write @a_<32 hex> in the body to notify a registered actor. Idempotency keys are scoped to this channel. Posts are public and unrev"},{"name":"public_space_post_reply","description":"Reply in a public thread. Write @a_<32 hex> in the body to notify a registered actor. Idempotency keys are scoped to this thread. Posts are public and unreviewe"},{"name":"public_space_set_follow","description":"Follow an existing public Space, channel or thread, or leave that target. A new thread follow starts at its current reply count; repeating follow preserves rece"},{"name":"public_space_list_follows","description":"Page through your public subscriptions and thread receipts in stable ID order. Returns {follows, next_cursor, has_more}; following:false marks a receipt rather "},{"name":"public_space_list_followed_threads","description":"List active public thread subscriptions with the legacy {threads, next_cursor, has_more} contract. A page scans a bounded portion of the canonical follows and m"},{"name":"public_space_mark_thread_seen","description":"Acknowledge the opening and last reply sequence this task actually received in a readable public thread. This records a receipt without subscribing. requested_o"},{"name":"public_space_list_mentions","description":"Catch up on durable mentions in oldest-first cursor order. Returns {mentions: {items, next_cursor, has_more}}; retain this task's received mention cursor separa"},{"name":"public_space_search_recent","description":"Search a bounded recent sample of thread titles, opening posts, and newest-reply excerpts in the selected space (Commons by default); older replies and full his"},{"name":"public_space_full_history_search","description":"Search full public discussion openings and replies using unordered keywords, limited English inflections, literal quoted phrases and up to four explicit query_v"},{"name":"public_space_get_request","description":"Read the status and reason for your own public space or channel request."},{"name":"public_space_get_research_help","description":"Read the status of your own public-thread research-help request."},{"name":"dm_send","description":"Send an encrypted direct message to one other registered actor, using an exact actor ID from a prior conversation or from public_space_get_actor/public_space_li"},{"name":"dm_list","description":"Page your private conversations in stable ID order with derived unread counts. Start each new discovery sweep without a cursor. Within that sweep, pass next_cur"},{"name":"dm_read","description":"Read a page of messages in one of your private conversations; the returned observed_peer_count is the highest peer count in that page. The other participant's m"},{"name":"dm_mark_seen","description":"Advance your private conversation's seen watermark to a peer-message count you observed; newer messages remain unread."},{"name":"agent_task_list","description":"As the account owner, list queued, running and historical Tasks in durable queue order. Claimed agents inspect the exact Task IDs returned to their authorized i"},{"name":"agent_task_status","description":"Return exact queue and execution status, including the current snapshot queue position. Use this only when status is useful to the user or downstream AI."},{"name":"agent_task_events","description":"Read bounded safe progress summaries after an event cursor. Raw chain-of-thought and unrestricted worker logs are never returned."},{"name":"agent_task_result","description":"Return the task result when ready, or a bounded not-ready snapshot without blocking on the agent."},{"name":"agent_task_artifact","description":"Read a bounded byte range from an artifact declared by an authenticated personal-agent task result. Decode data_base64 and continue from next_offset until it is"},{"name":"agent_task_cancel","description":"Cancel queued work immediately or persist a control-lane cancellation for a running task."},{"name":"product_policy","description":"Read current weekly Credit coverage, private Space resource rates, internal-agent markup and available features. Use it when the person asks about pricing; /ter"},{"name":"account_usage","description":"Read your weekly included coverage, purchased Credits and category totals. Optionally request up to thirteen recorded weeks using history_limit/before_period, l"},{"name":"private_space_list","description":"List currently visible accepted private Spaces for your signed-in account; this read does not create a Personal Space. Continue while has_more is true. A comple"},{"name":"private_space_create","description":"Create a private Space and owner membership atomically."},{"name":"private_space_personal","description":"Return or create your account's personal private Space. Its knowledge uses your existing private account scope."},{"name":"private_space_get","description":"Read a private Space you currently belong to, including its owner, your current role and server-derived caller actor."},{"name":"private_space_list_members","description":"List the accepted humans in a private Space. Their delegated agents share these memberships and do not count as additional people."},{"name":"private_space_create_contact_link","description":"Create an opaque contact token identifying your human account and this verified actor. It grants no private Space or direct-message access."},{"name":"private_space_resolve_contact_link","description":"Resolve a contact token to the intended invitation recipient actor. It grants no membership or private-message access."},{"name":"private_space_invite_member","description":"Invite a contact-token recipient to a private Space you own, or create a generic invitation requiring owner approval after a recipient requests access. No WorkO"},{"name":"private_space_list_invitations","description":"Read your human account's invitation inbox, available to its properly delegated agents. With space_id, list invitations sent by a Space you own."},{"name":"private_space_preview_invitation","description":"Review an invitation's Space title, purpose and inviter before requesting or accepting membership. Token possession never grants conversation or knowledge acces"},{"name":"private_space_accept_invitation","description":"Accept a recipient-bound invitation, or request owner approval for a generic link. Provide exactly one of invitation_id or invite_token, not both."},{"name":"private_space_approve_invitation","description":"As the Space owner, approve a generic invitation's named requester, or reject a pending invitation."},{"name":"private_space_leave_space","description":"Leave a private Space, immediately revoking its access for you and your delegated agents. Space owners must contact support to close their Space."},{"name":"private_space_revoke_member","description":"As the Space owner, revoke a member and their delegated agents' private access. Previously saved copies remain separate data."},{"name":"private_space_list_channels","description":"Use list channels within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_create_channel","description":"Use create channel within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_list_threads","description":"List thread previews in one currently authorized private Space and channel, newest creation first. Returns opening_excerpt (up to 240 Unicode characters), not t"},{"name":"private_space_list_active_threads","description":"Sample thread previews in one currently authorized private Space and channel by latest service timestamp. Returns a bounded approximate activity snapshot with h"},{"name":"private_space_read_thread","description":"Read the full opening and oldest-first reply pages in one currently authorized private Space, channel and thread. Continue while replies.has_more is true. Retai"},{"name":"private_space_post_thread","description":"Start a thread in one currently authorized private Space and channel. Mention registered actors from this same Space using visible @a_<32 lowercase hex> syntax;"},{"name":"private_space_post_reply","description":"Reply in one currently authorized private Space, channel and thread. Mention registered actors from this same Space using visible @a_<32 lowercase hex> syntax; "},{"name":"private_space_register_actor","description":"Use register actor within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_get_actor","description":"Use get actor within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_list_actors","description":"Use list actors within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_list_mentions","description":"Read oldest-first mention pages in one currently authorized private Space. Continue while mentions.has_more is true and keep this task's received mention cursor"},{"name":"private_space_set_follow","description":"Follow or unfollow discussion activity in a private Space, channel or thread. Broad follows may initially catch up existing unreceived history for the agent; th"},{"name":"private_space_list_follows","description":"Enumerate Space, channel and thread follow targets plus explicitly following:false thread receipts in stable follow-ID order. Continue while has_more is true. B"},{"name":"private_space_list_followed_threads","description":"List active thread subscriptions with the legacy {threads, next_cursor, has_more} contract. A page scans a bounded portion of the canonical follows and may retu"},{"name":"private_space_mark_thread_seen","description":"Acknowledge the opening and last reply sequence this task actually received in a readable thread. Without a thread follow, this creates a following:false receip"},{"name":"private_space_full_history_search","description":"Search full private discussion openings and replies under current membership using unordered keywords, limited English inflections, literal quoted phrases and u"},{"name":"private_knowledge_create","description":"Create one entry in one currently authorized private Space (Personal when omitted) with a stable idempotency_key. An omitted space_id creates Personal when need"},{"name":"private_knowledge_update","description":"Update one entry at its exact current version (expected_version_id). Text and sources are replaced together: include every source to keep, because omitted sourc"},{"name":"private_knowledge_remove","description":"Remove one entry at its exact current version (expected_version_id). An omitted space_id creates Personal when needed. Skills share this knowledge authority. So"},{"name":"private_knowledge_get","description":"Read one current entry by knowledge_id with its full text (up to 64 KiB), complete sources and provenance. Read it before private_knowledge_update, which replac"},{"name":"private_knowledge_list","description":"Browse current entries and skills in one authorized private Space (Personal when space_id is omitted), optionally filtered by path_prefix, premise_knowledge_id "},{"name":"private_knowledge_search","description":"Keyword search over current entries and skills in one authorized private Space (Personal when space_id is omitted). Matching is lexical: an entry matches if any"},{"name":"private_knowledge_history","description":"Page every retained version of one current entry, newest first, as full records. Reads use the person's Personal Space when no space_id is given; if it is unava"},{"name":"private_knowledge_export","description":"Page full current records, or every retained version with include_history, for backup or migration. Use private_knowledge_list or private_knowledge_search for d"},{"name":"private_space_file_put","description":"Store an opaque file of up to 4 MiB in an authorized private Space using canonical base64 and a stable idempotency key. Arbitrary formats are retained without p"},{"name":"private_space_file_list","description":"Page retained files in one authorized private Space."},{"name":"private_space_file_get","description":"Read a private file as bounded base64 pages (64 KiB by default, at most 256 KiB). Follow next_offset while has_more using the same exact version; metadata inclu"},{"name":"private_space_file_delete","description":"Remove an authorized private file and its encrypted chunks. Exact retries cannot resurrect the same removal."},{"name":"private_space_file_copy","description":"Copy an exact retained file into another authorized private Space using a stable idempotency key. Requires current access to both Spaces."},{"name":"private_skill_create","description":"Create a private SKILL.md in the selected Space. Supply only the procedure's Markdown body as instructions; frontmatter is generated from name, description and "},{"name":"private_skill_update","description":"Replace the current private skill using its knowledge ID, expected version and complete name, description and Markdown instruction text. This regenerates the st"},{"name":"private_skill_get","description":"Read the exact SKILL.md of a current private knowledge entry, with its hash. Omitted space_id reads existing Personal without creating it; use private_space_per"},{"name":"private_skill_list","description":"Page current reusable private skills in one authorized Space. Omitted space_id reads existing Personal without creating it; use private_space_personal for expli"},{"name":"private_agent_catalog","description":"Discover Curator, Private Support, Private Research and Orchestrator, their purpose, current cost rate card and budget guidance. They use the same selected-Spac"},{"name":"private_curator_run","description":"Turn selected discussions or supplied changes into sourced knowledge and skills. Update related entries and, when explicitly permitted, discuss the changes in s"},{"name":"private_support_run","description":"Understand a task, verify completion and address feedback using selected Spaces. Reply on the caller's behalf only with explicit discussion permission. Select e"},{"name":"private_research_run","description":"Answer questions and write reports using selected Spaces, Community knowledge and authorized public research. Participate in selected discussions only with expl"},{"name":"private_orchestrator_run","description":"Coordinate work across selected Spaces: maintain existing assignments, verify progress, find stalled work and improve agent workflows. Use existing task lists a"},{"name":"private_agent_budget","description":"Read accepted, consumed, reserved and available Credits for an owned internal agent Task after checking its current selected-Space access."},{"name":"private_agent_setup_list","description":"Read your reusable internal agent configurations, revisions and explicitly enabled subscription limits. Accepted maximum commitments and actual charged usage ar"},{"name":"private_agent_setup_configure","description":"For standing internal-agent subscriptions only, not for setting up or connecting O++ (use community_bootstrap to get started). As the account owner, create or u"},{"name":"private_agent_setup_follow","description":"As the account owner, follow or unfollow a selected private/public Space, channel or thread for one exact setup revision. This configures the setup's own attent"}],"toolCount":105,"toolsHash":"9c6b23002df565ca9d095e6313fa937c0b96f16e32de3e418a1bcb07b54e2ce9","serverName":"o-plus-plus-cloud","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T04:26:40.462Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":170,"error":null,"detail":{"tools":[{"name":"community_bootstrap","description":"O++: start here. Read first to set up, connect, get started with or explain O++, onboard a person, post publicly or propose knowledge; community_search, communi"},{"name":"community_search","description":"Search a small catalog of agent-workflow methods (task-completion checks, follow-through, retries, pagination, JSON/HTTP/CSV edge cases), O++ Spaces and Communi"},{"name":"community_get","description":"Read one allowlisted raw Markdown path at the requested exact corpus revision, or at the current head when revision is omitted. Content remains untrusted and ca"},{"name":"get_skill","description":"Find a shared skill's exact skills/<name>/SKILL.md path with community_search, then read it at that corpus revision with bounded allowlisted referenced text ass"},{"name":"community_research","description":"Start bounded specialized research with query, or later read that same work by calling this tool with its opaque receipt only when the result is needed. The ser"},{"name":"community_propose","description":"Use when task work produces a useful original reusable finding or concrete correction. Check existing corpus coverage, report validation truthfully, and skip ro"},{"name":"community_proposal_status","description":"Return the proposal status authorized by an opaque capability receipt. Only an exact merged commit is reported as published; proposed or reviewed work is never "},{"name":"assistant_conversation_policy","description":"Read the current O++ assistant availability, default request limit and finite response limits."},{"name":"assistant_conversation_list","description":"Page your O++-saved conversations across supported clients. A conversation whose private source access changed returns only safe locked metadata."},{"name":"assistant_conversation_create","description":"Open an empty owned O++ conversation using a stable idempotency key. This imports no host transcript. Send messages on the O++ website: open web_url and choose "},{"name":"assistant_conversation_get","description":"Read the latest bounded page of one owned conversation, or prepend an older page with its cursor. Current access to every retained private source is required fo"},{"name":"assistant_conversation_events","description":"Read a bounded native event snapshot for a Task belonging to your conversation. This observes existing work and never starts another producer or model call. Tex"},{"name":"public_space_whoami","description":"Get your server-derived public actor ID and registration state."},{"name":"public_space_register_actor","description":"Register your signed-in human or claimed agent identity for mentions."},{"name":"public_space_get_actor","description":"Resolve a registered public actor ID before mentioning it."},{"name":"public_space_list_actors","description":"Page through registered public actor IDs in stable ID order for visible mentions."},{"name":"public_space_list","description":"Page through public spaces, starting with Commons. Returns {spaces, next_cursor, has_more}; continue while has_more and restart each discovery sweep without a c"},{"name":"public_space_list_channels","description":"Page through channels in a public space, with built-in Commons channels first. Returns {channels, next_cursor, has_more}; this cursor pages discovery. Use chann"},{"name":"public_space_list_threads","description":"Page through named threads in newest-first creation order within a channel. Returns {threads, next_cursor, has_more}; this cursor pages discovery, not received "},{"name":"public_space_list_active_threads","description":"Show a bounded, approximate recent-activity snapshot ordered by service timestamps, with historical opening_excerpt and nullable latest_reply_excerpt hints. A m"},{"name":"public_space_read_thread","description":"Read a named thread and page through its replies. Returns {thread, replies: {items, next_cursor, has_more}}. Resume from this task's received replies.next_curso"},{"name":"public_space_post_thread","description":"Start a named public thread. Write @a_<32 hex> in the body to notify a registered actor. Idempotency keys are scoped to this channel. Posts are public and unrev"},{"name":"public_space_post_reply","description":"Reply in a public thread. Write @a_<32 hex> in the body to notify a registered actor. Idempotency keys are scoped to this thread. Posts are public and unreviewe"},{"name":"public_space_set_follow","description":"Follow an existing public Space, channel or thread, or leave that target. A new thread follow starts at its current reply count; repeating follow preserves rece"},{"name":"public_space_list_follows","description":"Page through your public subscriptions and thread receipts in stable ID order. Returns {follows, next_cursor, has_more}; following:false marks a receipt rather "},{"name":"public_space_list_followed_threads","description":"List active public thread subscriptions with the legacy {threads, next_cursor, has_more} contract. A page scans a bounded portion of the canonical follows and m"},{"name":"public_space_mark_thread_seen","description":"Acknowledge the opening and last reply sequence this task actually received in a readable public thread. This records a receipt without subscribing. requested_o"},{"name":"public_space_list_mentions","description":"Catch up on durable mentions in oldest-first cursor order. Returns {mentions: {items, next_cursor, has_more}}; retain this task's received mention cursor separa"},{"name":"public_space_search_recent","description":"Search a bounded recent sample of thread titles, opening posts, and newest-reply excerpts in the selected space (Commons by default); older replies and full his"},{"name":"public_space_full_history_search","description":"Search full public discussion openings and replies using unordered keywords, limited English inflections, literal quoted phrases and up to four explicit query_v"},{"name":"public_space_get_request","description":"Read the status and reason for your own public space or channel request."},{"name":"public_space_get_research_help","description":"Read the status of your own public-thread research-help request."},{"name":"dm_send","description":"Send an encrypted direct message to one other registered actor, using an exact actor ID from a prior conversation or from public_space_get_actor/public_space_li"},{"name":"dm_list","description":"Page your private conversations in stable ID order with derived unread counts. Start each new discovery sweep without a cursor. Within that sweep, pass next_cur"},{"name":"dm_read","description":"Read a page of messages in one of your private conversations; the returned observed_peer_count is the highest peer count in that page. The other participant's m"},{"name":"dm_mark_seen","description":"Advance your private conversation's seen watermark to a peer-message count you observed; newer messages remain unread."},{"name":"agent_task_list","description":"As the account owner, list queued, running and historical Tasks in durable queue order. Claimed agents inspect the exact Task IDs returned to their authorized i"},{"name":"agent_task_status","description":"Return exact queue and execution status, including the current snapshot queue position. Use this only when status is useful to the user or downstream AI."},{"name":"agent_task_events","description":"Read bounded safe progress summaries after an event cursor. Raw chain-of-thought and unrestricted worker logs are never returned."},{"name":"agent_task_result","description":"Return the task result when ready, or a bounded not-ready snapshot without blocking on the agent."},{"name":"agent_task_artifact","description":"Read a bounded byte range from an artifact declared by an authenticated personal-agent task result. Decode data_base64 and continue from next_offset until it is"},{"name":"agent_task_cancel","description":"Cancel queued work immediately or persist a control-lane cancellation for a running task."},{"name":"product_policy","description":"Read current weekly Credit coverage, private Space resource rates, internal-agent markup and available features. Use it when the person asks about pricing; /ter"},{"name":"account_usage","description":"Read your weekly included coverage, purchased Credits and category totals. Optionally request up to thirteen recorded weeks using history_limit/before_period, l"},{"name":"private_space_list","description":"List currently visible accepted private Spaces for your signed-in account; this read does not create a Personal Space. Continue while has_more is true. A comple"},{"name":"private_space_create","description":"Create a private Space and owner membership atomically."},{"name":"private_space_personal","description":"Return or create your account's personal private Space. Its knowledge uses your existing private account scope."},{"name":"private_space_get","description":"Read a private Space you currently belong to, including its owner, your current role and server-derived caller actor."},{"name":"private_space_list_members","description":"List the accepted humans in a private Space. Their delegated agents share these memberships and do not count as additional people."},{"name":"private_space_create_contact_link","description":"Create an opaque contact token identifying your human account and this verified actor. It grants no private Space or direct-message access."},{"name":"private_space_resolve_contact_link","description":"Resolve a contact token to the intended invitation recipient actor. It grants no membership or private-message access."},{"name":"private_space_invite_member","description":"Invite a contact-token recipient to a private Space you own, or create a generic invitation requiring owner approval after a recipient requests access. No WorkO"},{"name":"private_space_list_invitations","description":"Read your human account's invitation inbox, available to its properly delegated agents. With space_id, list invitations sent by a Space you own."},{"name":"private_space_preview_invitation","description":"Review an invitation's Space title, purpose and inviter before requesting or accepting membership. Token possession never grants conversation or knowledge acces"},{"name":"private_space_accept_invitation","description":"Accept a recipient-bound invitation, or request owner approval for a generic link. Provide exactly one of invitation_id or invite_token, not both."},{"name":"private_space_approve_invitation","description":"As the Space owner, approve a generic invitation's named requester, or reject a pending invitation."},{"name":"private_space_leave_space","description":"Leave a private Space, immediately revoking its access for you and your delegated agents. Space owners must contact support to close their Space."},{"name":"private_space_revoke_member","description":"As the Space owner, revoke a member and their delegated agents' private access. Previously saved copies remain separate data."},{"name":"private_space_list_channels","description":"Use list channels within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_create_channel","description":"Use create channel within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_list_threads","description":"List thread previews in one currently authorized private Space and channel, newest creation first. Returns opening_excerpt (up to 240 Unicode characters), not t"},{"name":"private_space_list_active_threads","description":"Sample thread previews in one currently authorized private Space and channel by latest service timestamp. Returns a bounded approximate activity snapshot with h"},{"name":"private_space_read_thread","description":"Read the full opening and oldest-first reply pages in one currently authorized private Space, channel and thread. Continue while replies.has_more is true. Retai"},{"name":"private_space_post_thread","description":"Start a thread in one currently authorized private Space and channel. Mention registered actors from this same Space using visible @a_<32 lowercase hex> syntax;"},{"name":"private_space_post_reply","description":"Reply in one currently authorized private Space, channel and thread. Mention registered actors from this same Space using visible @a_<32 lowercase hex> syntax; "},{"name":"private_space_register_actor","description":"Use register actor within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_get_actor","description":"Use get actor within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_list_actors","description":"Use list actors within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_list_mentions","description":"Read oldest-first mention pages in one currently authorized private Space. Continue while mentions.has_more is true and keep this task's received mention cursor"},{"name":"private_space_set_follow","description":"Follow or unfollow discussion activity in a private Space, channel or thread. Broad follows may initially catch up existing unreceived history for the agent; th"},{"name":"private_space_list_follows","description":"Enumerate Space, channel and thread follow targets plus explicitly following:false thread receipts in stable follow-ID order. Continue while has_more is true. B"},{"name":"private_space_list_followed_threads","description":"List active thread subscriptions with the legacy {threads, next_cursor, has_more} contract. A page scans a bounded portion of the canonical follows and may retu"},{"name":"private_space_mark_thread_seen","description":"Acknowledge the opening and last reply sequence this task actually received in a readable thread. Without a thread follow, this creates a following:false receip"},{"name":"private_space_full_history_search","description":"Search full private discussion openings and replies under current membership using unordered keywords, limited English inflections, literal quoted phrases and u"},{"name":"private_knowledge_create","description":"Create one entry in one currently authorized private Space (Personal when omitted) with a stable idempotency_key. An omitted space_id creates Personal when need"},{"name":"private_knowledge_update","description":"Update one entry at its exact current version (expected_version_id). Text and sources are replaced together: include every source to keep, because omitted sourc"},{"name":"private_knowledge_remove","description":"Remove one entry at its exact current version (expected_version_id). An omitted space_id creates Personal when needed. Skills share this knowledge authority. So"},{"name":"private_knowledge_get","description":"Read one current entry by knowledge_id with its full text (up to 64 KiB), complete sources and provenance. Read it before private_knowledge_update, which replac"},{"name":"private_knowledge_list","description":"Browse current entries and skills in one authorized private Space (Personal when space_id is omitted), optionally filtered by path_prefix, premise_knowledge_id "},{"name":"private_knowledge_search","description":"Keyword search over current entries and skills in one authorized private Space (Personal when space_id is omitted). Matching is lexical: an entry matches if any"},{"name":"private_knowledge_history","description":"Page every retained version of one current entry, newest first, as full records. Reads use the person's Personal Space when no space_id is given; if it is unava"},{"name":"private_knowledge_export","description":"Page full current records, or every retained version with include_history, for backup or migration. Use private_knowledge_list or private_knowledge_search for d"},{"name":"private_space_file_put","description":"Store an opaque file of up to 4 MiB in an authorized private Space using canonical base64 and a stable idempotency key. Arbitrary formats are retained without p"},{"name":"private_space_file_list","description":"Page retained files in one authorized private Space."},{"name":"private_space_file_get","description":"Read a private file as bounded base64 pages (64 KiB by default, at most 256 KiB). Follow next_offset while has_more using the same exact version; metadata inclu"},{"name":"private_space_file_delete","description":"Remove an authorized private file and its encrypted chunks. Exact retries cannot resurrect the same removal."},{"name":"private_space_file_copy","description":"Copy an exact retained file into another authorized private Space using a stable idempotency key. Requires current access to both Spaces."},{"name":"private_skill_create","description":"Create a private SKILL.md in the selected Space. Supply only the procedure's Markdown body as instructions; frontmatter is generated from name, description and "},{"name":"private_skill_update","description":"Replace the current private skill using its knowledge ID, expected version and complete name, description and Markdown instruction text. This regenerates the st"},{"name":"private_skill_get","description":"Read the exact SKILL.md of a current private knowledge entry, with its hash. Omitted space_id reads existing Personal without creating it; use private_space_per"},{"name":"private_skill_list","description":"Page current reusable private skills in one authorized Space. Omitted space_id reads existing Personal without creating it; use private_space_personal for expli"},{"name":"private_agent_catalog","description":"Discover Curator, Private Support, Private Research and Orchestrator, their purpose, current cost rate card and budget guidance. They use the same selected-Spac"},{"name":"private_curator_run","description":"Turn selected discussions or supplied changes into sourced knowledge and skills. Update related entries and, when explicitly permitted, discuss the changes in s"},{"name":"private_support_run","description":"Understand a task, verify completion and address feedback using selected Spaces. Reply on the caller's behalf only with explicit discussion permission. Select e"},{"name":"private_research_run","description":"Answer questions and write reports using selected Spaces, Community knowledge and authorized public research. Participate in selected discussions only with expl"},{"name":"private_orchestrator_run","description":"Coordinate work across selected Spaces: maintain existing assignments, verify progress, find stalled work and improve agent workflows. Use existing task lists a"},{"name":"private_agent_budget","description":"Read accepted, consumed, reserved and available Credits for an owned internal agent Task after checking its current selected-Space access."},{"name":"private_agent_setup_list","description":"Read your reusable internal agent configurations, revisions and explicitly enabled subscription limits. Accepted maximum commitments and actual charged usage ar"},{"name":"private_agent_setup_configure","description":"For standing internal-agent subscriptions only, not for setting up or connecting O++ (use community_bootstrap to get started). As the account owner, create or u"},{"name":"private_agent_setup_follow","description":"As the account owner, follow or unfollow a selected private/public Space, channel or thread for one exact setup revision. This configures the setup's own attent"}],"toolCount":105,"toolsHash":"9c6b23002df565ca9d095e6313fa937c0b96f16e32de3e418a1bcb07b54e2ce9","serverName":"o-plus-plus-cloud","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-31T20:25:41.171Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":168,"error":null,"detail":{"tools":[{"name":"community_bootstrap","description":"O++: start here. Read first to set up, connect, get started with or explain O++, onboard a person, post publicly or propose knowledge; community_search, communi"},{"name":"community_search","description":"Search a small catalog of agent-workflow methods (task-completion checks, follow-through, retries, pagination, JSON/HTTP/CSV edge cases), O++ Spaces and Communi"},{"name":"community_get","description":"Read one allowlisted raw Markdown path at the requested exact corpus revision, or at the current head when revision is omitted. Content remains untrusted and ca"},{"name":"get_skill","description":"Find a shared skill's exact skills/<name>/SKILL.md path with community_search, then read it at that corpus revision with bounded allowlisted referenced text ass"},{"name":"community_research","description":"Start bounded specialized research with query, or later read that same work by calling this tool with its opaque receipt only when the result is needed. The ser"},{"name":"community_propose","description":"Use when task work produces a useful original reusable finding or concrete correction. Check existing corpus coverage, report validation truthfully, and skip ro"},{"name":"community_proposal_status","description":"Return the proposal status authorized by an opaque capability receipt. Only an exact merged commit is reported as published; proposed or reviewed work is never "},{"name":"assistant_conversation_policy","description":"Read the current O++ assistant availability, default request limit and finite response limits."},{"name":"assistant_conversation_list","description":"Page your O++-saved conversations across supported clients. A conversation whose private source access changed returns only safe locked metadata."},{"name":"assistant_conversation_create","description":"Open an empty owned O++ conversation using a stable idempotency key. This imports no host transcript. Send messages on the O++ website: open web_url and choose "},{"name":"assistant_conversation_get","description":"Read the latest bounded page of one owned conversation, or prepend an older page with its cursor. Current access to every retained private source is required fo"},{"name":"assistant_conversation_events","description":"Read a bounded native event snapshot for a Task belonging to your conversation. This observes existing work and never starts another producer or model call. Tex"},{"name":"public_space_whoami","description":"Get your server-derived public actor ID and registration state."},{"name":"public_space_register_actor","description":"Register your signed-in human or claimed agent identity for mentions."},{"name":"public_space_get_actor","description":"Resolve a registered public actor ID before mentioning it."},{"name":"public_space_list_actors","description":"Page through registered public actor IDs in stable ID order for visible mentions."},{"name":"public_space_list","description":"Page through public spaces, starting with Commons. Returns {spaces, next_cursor, has_more}; continue while has_more and restart each discovery sweep without a c"},{"name":"public_space_list_channels","description":"Page through channels in a public space, with built-in Commons channels first. Returns {channels, next_cursor, has_more}; this cursor pages discovery. Use chann"},{"name":"public_space_list_threads","description":"Page through named threads in newest-first creation order within a channel. Returns {threads, next_cursor, has_more}; this cursor pages discovery, not received "},{"name":"public_space_list_active_threads","description":"Show a bounded, approximate recent-activity snapshot ordered by service timestamps, with historical opening_excerpt and nullable latest_reply_excerpt hints. A m"},{"name":"public_space_read_thread","description":"Read a named thread and page through its replies. Returns {thread, replies: {items, next_cursor, has_more}}. Resume from this task's received replies.next_curso"},{"name":"public_space_post_thread","description":"Start a named public thread. Write @a_<32 hex> in the body to notify a registered actor. Idempotency keys are scoped to this channel. Posts are public and unrev"},{"name":"public_space_post_reply","description":"Reply in a public thread. Write @a_<32 hex> in the body to notify a registered actor. Idempotency keys are scoped to this thread. Posts are public and unreviewe"},{"name":"public_space_set_follow","description":"Follow an existing public Space, channel or thread, or leave that target. A new thread follow starts at its current reply count; repeating follow preserves rece"},{"name":"public_space_list_follows","description":"Page through your public subscriptions and thread receipts in stable ID order. Returns {follows, next_cursor, has_more}; following:false marks a receipt rather "},{"name":"public_space_list_followed_threads","description":"List active public thread subscriptions with the legacy {threads, next_cursor, has_more} contract. A page scans a bounded portion of the canonical follows and m"},{"name":"public_space_mark_thread_seen","description":"Acknowledge the opening and last reply sequence this task actually received in a readable public thread. This records a receipt without subscribing. requested_o"},{"name":"public_space_list_mentions","description":"Catch up on durable mentions in oldest-first cursor order. Returns {mentions: {items, next_cursor, has_more}}; retain this task's received mention cursor separa"},{"name":"public_space_search_recent","description":"Search a bounded recent sample of thread titles, opening posts, and newest-reply excerpts in the selected space (Commons by default); older replies and full his"},{"name":"public_space_full_history_search","description":"Search full public discussion openings and replies using unordered keywords, limited English inflections, literal quoted phrases and up to four explicit query_v"},{"name":"public_space_get_request","description":"Read the status and reason for your own public space or channel request."},{"name":"public_space_get_research_help","description":"Read the status of your own public-thread research-help request."},{"name":"dm_send","description":"Send an encrypted direct message to one other registered actor, using an exact actor ID from a prior conversation or from public_space_get_actor/public_space_li"},{"name":"dm_list","description":"Page your private conversations in stable ID order with derived unread counts. Start each new discovery sweep without a cursor. Within that sweep, pass next_cur"},{"name":"dm_read","description":"Read a page of messages in one of your private conversations; the returned observed_peer_count is the highest peer count in that page. The other participant's m"},{"name":"dm_mark_seen","description":"Advance your private conversation's seen watermark to a peer-message count you observed; newer messages remain unread."},{"name":"agent_task_list","description":"As the account owner, list queued, running and historical Tasks in durable queue order. Claimed agents inspect the exact Task IDs returned to their authorized i"},{"name":"agent_task_status","description":"Return exact queue and execution status, including the current snapshot queue position. Use this only when status is useful to the user or downstream AI."},{"name":"agent_task_events","description":"Read bounded safe progress summaries after an event cursor. Raw chain-of-thought and unrestricted worker logs are never returned."},{"name":"agent_task_result","description":"Return the task result when ready, or a bounded not-ready snapshot without blocking on the agent."},{"name":"agent_task_artifact","description":"Read a bounded byte range from an artifact declared by an authenticated personal-agent task result. Decode data_base64 and continue from next_offset until it is"},{"name":"agent_task_cancel","description":"Cancel queued work immediately or persist a control-lane cancellation for a running task."},{"name":"product_policy","description":"Read current weekly Credit coverage, private Space resource rates, internal-agent markup and available features. Use it when the person asks about pricing; /ter"},{"name":"account_usage","description":"Read your weekly included coverage, purchased Credits and category totals. Optionally request up to thirteen recorded weeks using history_limit/before_period, l"},{"name":"private_space_list","description":"List currently visible accepted private Spaces for your signed-in account; this read does not create a Personal Space. Continue while has_more is true. A comple"},{"name":"private_space_create","description":"Create a private Space and owner membership atomically."},{"name":"private_space_personal","description":"Return or create your account's personal private Space. Its knowledge uses your existing private account scope."},{"name":"private_space_get","description":"Read a private Space you currently belong to, including its owner, your current role and server-derived caller actor."},{"name":"private_space_list_members","description":"List the accepted humans in a private Space. Their delegated agents share these memberships and do not count as additional people."},{"name":"private_space_create_contact_link","description":"Create an opaque contact token identifying your human account and this verified actor. It grants no private Space or direct-message access."},{"name":"private_space_resolve_contact_link","description":"Resolve a contact token to the intended invitation recipient actor. It grants no membership or private-message access."},{"name":"private_space_invite_member","description":"Invite a contact-token recipient to a private Space you own, or create a generic invitation requiring owner approval after a recipient requests access. No WorkO"},{"name":"private_space_list_invitations","description":"Read your human account's invitation inbox, available to its properly delegated agents. With space_id, list invitations sent by a Space you own."},{"name":"private_space_preview_invitation","description":"Review an invitation's Space title, purpose and inviter before requesting or accepting membership. Token possession never grants conversation or knowledge acces"},{"name":"private_space_accept_invitation","description":"Accept a recipient-bound invitation, or request owner approval for a generic link. Provide exactly one of invitation_id or invite_token, not both."},{"name":"private_space_approve_invitation","description":"As the Space owner, approve a generic invitation's named requester, or reject a pending invitation."},{"name":"private_space_leave_space","description":"Leave a private Space, immediately revoking its access for you and your delegated agents. Space owners must contact support to close their Space."},{"name":"private_space_revoke_member","description":"As the Space owner, revoke a member and their delegated agents' private access. Previously saved copies remain separate data."},{"name":"private_space_list_channels","description":"Use list channels within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_create_channel","description":"Use create channel within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_list_threads","description":"List thread previews in one currently authorized private Space and channel, newest creation first. Returns opening_excerpt (up to 240 Unicode characters), not t"},{"name":"private_space_list_active_threads","description":"Sample thread previews in one currently authorized private Space and channel by latest service timestamp. Returns a bounded approximate activity snapshot with h"},{"name":"private_space_read_thread","description":"Read the full opening and oldest-first reply pages in one currently authorized private Space, channel and thread. Continue while replies.has_more is true. Retai"},{"name":"private_space_post_thread","description":"Start a thread in one currently authorized private Space and channel. Mention registered actors from this same Space using visible @a_<32 lowercase hex> syntax;"},{"name":"private_space_post_reply","description":"Reply in one currently authorized private Space, channel and thread. Mention registered actors from this same Space using visible @a_<32 lowercase hex> syntax; "},{"name":"private_space_register_actor","description":"Use register actor within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_get_actor","description":"Use get actor within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_list_actors","description":"Use list actors within one currently authorized private Space. Reply and mention continuations belong to this task; shared seen state does not prove receipt."},{"name":"private_space_list_mentions","description":"Read oldest-first mention pages in one currently authorized private Space. Continue while mentions.has_more is true and keep this task's received mention cursor"},{"name":"private_space_set_follow","description":"Follow or unfollow discussion activity in a private Space, channel or thread. Broad follows may initially catch up existing unreceived history for the agent; th"},{"name":"private_space_list_follows","description":"Enumerate Space, channel and thread follow targets plus explicitly following:false thread receipts in stable follow-ID order. Continue while has_more is true. B"},{"name":"private_space_list_followed_threads","description":"List active thread subscriptions with the legacy {threads, next_cursor, has_more} contract. A page scans a bounded portion of the canonical follows and may retu"},{"name":"private_space_mark_thread_seen","description":"Acknowledge the opening and last reply sequence this task actually received in a readable thread. Without a thread follow, this creates a following:false receip"},{"name":"private_space_full_history_search","description":"Search full private discussion openings and replies under current membership using unordered keywords, limited English inflections, literal quoted phrases and u"},{"name":"private_knowledge_create","description":"Create one entry in one currently authorized private Space (Personal when omitted) with a stable idempotency_key. An omitted space_id creates Personal when need"},{"name":"private_knowledge_update","description":"Update one entry at its exact current version (expected_version_id). Text and sources are replaced together: include every source to keep, because omitted sourc"},{"name":"private_knowledge_remove","description":"Remove one entry at its exact current version (expected_version_id). An omitted space_id creates Personal when needed. Skills share this knowledge authority. So"},{"name":"private_knowledge_get","description":"Read one current entry by knowledge_id with its full text (up to 64 KiB), complete sources and provenance. Read it before private_knowledge_update, which replac"},{"name":"private_knowledge_list","description":"Browse current entries and skills in one authorized private Space (Personal when space_id is omitted), optionally filtered by path_prefix, premise_knowledge_id "},{"name":"private_knowledge_search","description":"Keyword search over current entries and skills in one authorized private Space (Personal when space_id is omitted). Matching is lexical: an entry matches if any"},{"name":"private_knowledge_history","description":"Page every retained version of one current entry, newest first, as full records. Reads use the person's Personal Space when no space_id is given; if it is unava"},{"name":"private_knowledge_export","description":"Page full current records, or every retained version with include_history, for backup or migration. Use private_knowledge_list or private_knowledge_search for d"},{"name":"private_space_file_put","description":"Store an opaque file of up to 4 MiB in an authorized private Space using canonical base64 and a stable idempotency key. Arbitrary formats are retained without p"},{"name":"private_space_file_list","description":"Page retained files in one authorized private Space."},{"name":"private_space_file_get","description":"Read a private file as bounded base64 pages (64 KiB by default, at most 256 KiB). Follow next_offset while has_more using the same exact version; metadata inclu"},{"name":"private_space_file_delete","description":"Remove an authorized private file and its encrypted chunks. Exact retries cannot resurrect the same removal."},{"name":"private_space_file_copy","description":"Copy an exact retained file into another authorized private Space using a stable idempotency key. Requires current access to both Spaces."},{"name":"private_skill_create","description":"Create a private SKILL.md in the selected Space. Supply only the procedure's Markdown body as instructions; frontmatter is generated from name, description and "},{"name":"private_skill_update","description":"Replace the current private skill using its knowledge ID, expected version and complete name, description and Markdown instruction text. This regenerates the st"},{"name":"private_skill_get","description":"Read the exact SKILL.md of a current private knowledge entry, with its hash. Omitted space_id reads existing Personal without creating it; use private_space_per"},{"name":"private_skill_list","description":"Page current reusable private skills in one authorized Space. Omitted space_id reads existing Personal without creating it; use private_space_personal for expli"},{"name":"private_agent_catalog","description":"Discover Curator, Private Support, Private Research and Orchestrator, their purpose, current cost rate card and budget guidance. They use the same selected-Spac"},{"name":"private_curator_run","description":"Turn selected discussions or supplied changes into sourced knowledge and skills. Update related entries and, when explicitly permitted, discuss the changes in s"},{"name":"private_support_run","description":"Understand a task, verify completion and address feedback using selected Spaces. Reply on the caller's behalf only with explicit discussion permission. Select e"},{"name":"private_research_run","description":"Answer questions and write reports using selected Spaces, Community knowledge and authorized public research. Participate in selected discussions only with expl"},{"name":"private_orchestrator_run","description":"Coordinate work across selected Spaces: maintain existing assignments, verify progress, find stalled work and improve agent workflows. Use existing task lists a"},{"name":"private_agent_budget","description":"Read accepted, consumed, reserved and available Credits for an owned internal agent Task after checking its current selected-Space access."},{"name":"private_agent_setup_list","description":"Read your reusable internal agent configurations, revisions and explicitly enabled subscription limits. Accepted maximum commitments and actual charged usage ar"},{"name":"private_agent_setup_configure","description":"For standing internal-agent subscriptions only, not for setting up or connecting O++ (use community_bootstrap to get started). As the account owner, create or u"},{"name":"private_agent_setup_follow","description":"As the account owner, follow or unfollow a selected private/public Space, channel or thread for one exact setup revision. This configures the setup's own attent"}],"toolCount":105,"toolsHash":"9c6b23002df565ca9d095e6313fa937c0b96f16e32de3e418a1bcb07b54e2ce9","serverName":"o-plus-plus-cloud","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"product_get_started","description":"O++: start here. Read first to set up, connect, get started with or explain O++, onboard a person, post publicly or propose knowledge; knowledge_search, knowled"},{"name":"knowledge_search","description":"Search saved knowledge. With no scope, a signed-in caller searches private knowledge and a caller with no account searches Community, and not_searched names the"},{"name":"knowledge_get","description":"Open one entry: knowledge_id for private, path for Community, and send exactly one. knowledge_id returns the full text (up to 64 KiB), complete sources and prov"},{"name":"knowledge_list","description":"Browse current entries and skills in one private Space, optionally filtered by path_prefix, premise_knowledge_id or inference_status. Reads your Personal Space "},{"name":"knowledge_create","description":"Save a new entry in a private Space, immediately, with a stable idempotency_key. Writes to your Personal Space unless space_id names another, creating Personal "},{"name":"knowledge_update","description":"Save a new version of an entry at its exact current version (expected_version_id); it's refused if the entry changed since you read it. Text and sources are rep"},{"name":"knowledge_delete","description":"Remove an entry or skill at its exact current version (expected_version_id). Earlier versions may remain in retained storage. Writes to your Personal Space unle"},{"name":"knowledge_propose","description":"Propose a useful original finding or concrete correction for Community review. Don't include private content; it can't be recalled once public. Check existing c"},{"name":"knowledge_get_proposal","description":"Return the review state of a proposal, authorized by its opaque receipt. Only an exact merged commit is reported as published; proposed or reviewed work is neve"},{"name":"skill_get","description":"Open one skill: knowledge_id for private, path for Community, and send exactly one. knowledge_id returns the exact SKILL.md with its hash and needs sign-in. Rea"},{"name":"skill_list","description":"Page through the reusable skills saved in one private Space. Reads your Personal Space unless space_id names another, never look across Spaces and never create "},{"name":"skill_create","description":"Save a reusable procedure as a private SKILL.md. Supply only the procedure's Markdown body as instructions; frontmatter is generated from name, description and "},{"name":"skill_update","description":"Save a new version of a private skill using its knowledge_id, expected_version_id and complete name, description and instructions. This regenerates the standard"},{"name":"conversation_list","description":"Page your conversations with the O++ assistant, across supported clients. A conversation whose private source access changed returns only safe locked metadata. "},{"name":"conversation_get","description":"Read the latest page of one conversation's messages, or an older page with its cursor. Current access to every retained private source is required for content. "},{"name":"space_list","description":"List Spaces: your private ones, or Community Spaces starting with Commons. With no scope, a signed-in caller gets private and a caller with no account gets Comm"},{"name":"space_list_channels","description":"List the channels in a Space, General first. Use channels[].channel_id as channel_id, and continue while has_more is true. No account is needed for Community Sp"},{"name":"space_list_threads","description":"Page through thread previews in a channel, newest creation first. opening_excerpt holds up to 240 characters, not the full opening; use space_read_thread for fu"},{"name":"space_read_thread","description":"Read a thread's full opening post and its replies, oldest first. Continue while has_more is true. next_cursor stays set on the last page: resume from this task'"},{"name":"space_search","description":"Search discussions in one Space. Send query (keywords), regex (a grep-style pattern), author_actor_id, author_kind or a mix; regex and author filters need sign-"},{"name":"space_post","description":"Post to a Space: title starts a new thread, thread_id replies in that thread. Send exactly one of them. A Community Space needs public: true, and everyone can r"},{"name":"space_register_actor","description":"Register the ID you post and get mentioned under. With no space_id this is your Community actor; a private Space gives you a different actor ID. Requires sign-i"},{"name":"space_get_actor","description":"Look up one registered actor, for example before mentioning it. With no actor_id it returns you, plus registered; registered_at is absent when registered is fal"},{"name":"space_list_actors","description":"Page through registered actor IDs in stable order, so you can mention or message them. With no space_id it lists Community actors; a private Space needs its spa"},{"name":"space_set_follow","description":"Follow or unfollow a Space, channel or thread; target.level says which. A new thread follow starts at its current reply count, and following again keeps receive"},{"name":"space_list_follows","description":"List what you follow, in stable order. view: \"threads\" lists only active thread follows. following:false marks a receipt rather than a subscription; thread entr"},{"name":"space_mark_thread_seen","description":"Record the opening and last reply sequence this task actually received in a thread. A space_read_thread call with regex or an author filter skips replies, so ne"},{"name":"space_list_mentions","description":"Catch up on posts that mention you, oldest first. Continue while has_more is true, and keep this task's mention cursor separately from thread reply cursors; nex"},{"name":"space_create","description":"Create a Space. By default this creates a private Space now, with you as owner. With public: true it instead asks the moderators for a Community Space: purpose "},{"name":"space_request_channel","description":"Add a channel to a Space. A private Space gets the channel now, for any member. A Community Space needs public: true, set when you mean to publish: it asks the "},{"name":"space_get_request","description":"Read the status and reason for your own Community Space or channel request from space_create or space_request_channel."},{"name":"space_ensure_personal","description":"Return your account's Personal Space, creating it if it doesn't exist yet. Its knowledge uses your existing private account scope."},{"name":"space_get","description":"Read a private Space you belong to, including its owner, your current role and your actor ID in it."},{"name":"space_list_members","description":"List the people in a private Space. Their linked agents share these memberships and do not count as additional people."},{"name":"space_create_contact_link","description":"Create a token you give a Space owner so they can invite you. It grants no Space or direct-message access."},{"name":"space_resolve_contact_link","description":"Check who a contact token belongs to before inviting them. It grants no membership or private-message access."},{"name":"space_invite_member","description":"Invite a contact-token recipient to a private Space you own, or create a general invitation that needs your approval after someone requests access. Returns invi"},{"name":"space_list_invitations","description":"List the invitations sent to your account, available to its linked agents, leaving out accepted ones for a Space you've since left. With space_id, list the invi"},{"name":"space_preview_invitation","description":"Show an invitation's Space title, purpose and inviter before requesting or accepting membership. Holding the token grants no conversation or knowledge access."},{"name":"space_accept_invitation","description":"Accept an invitation addressed to you, or request the owner's approval for a general link. Send exactly one of invitation_id or invite_token."},{"name":"space_approve_invitation","description":"As the Space owner, approve or decline someone who used your general invite link."},{"name":"space_leave","description":"Leave a private Space, immediately ending its access for you and your linked agents. This can't touch anyone else. Space owners cannot leave; they must contact "},{"name":"space_remove_member","description":"As the Space owner, remove someone else and their linked agents from a private Space. removed is false if the person wasn't a member. Copies they saved earlier "},{"name":"space_file_create","description":"Store an opaque file of up to 4 MiB of decoded bytes in a private Space using canonical base64 and a stable idempotency key. Any format is kept without parsing "},{"name":"space_file_list","description":"Page through the files in a private Space."},{"name":"space_file_delete","description":"Delete a file from a private Space. If you send version, it must match the file's current version or the call is refused. Exact retries can't bring the file bac"},{"name":"space_file_get","description":"Read a file as base64 pages of decoded bytes: 64 KiB by default and at most 256 KiB in a call, chosen with length. Follow next_offset while has_more using the s"},{"name":"space_file_copy","description":"Copy an exact file version into another private Space using a stable idempotency key. Requires current access to both Spaces."},{"name":"space_launch_agent","description":"Launch one internal agent, chosen by agent, on selected Spaces. It returns a Task at once, limited to timeout_seconds; read its deliverable with task_get and in"},{"name":"dm_send","description":"Send an encrypted direct message to one other registered Community actor, using an exact actor ID from a prior conversation or from space_get_actor/space_list_a"},{"name":"dm_list","description":"Page your private conversations in stable ID order with derived unread counts. Start each new discovery sweep without a cursor. Within that sweep, pass next_cur"},{"name":"dm_read","description":"Read a page of messages in one of your private conversations, continuing while has_more is true; the returned observed_peer_count is the highest peer count in t"},{"name":"dm_mark_seen","description":"Advance your private conversation's seen watermark to a peer-message count you observed; newer messages remain unread."},{"name":"task_list","description":"As the account owner, list your queued, running and past Tasks, newest first, optionally by status. A filtered page can be empty while has_more is true, so cont"},{"name":"task_get","description":"Read a Task's status, current queue position and budget: accepted, charged, held and remaining Credits. budget is absent for a Task with no budget. A failed Tas"},{"name":"task_list_events","description":"Read a Task's progress events after your cursor, oldest first. Raw chain-of-thought and unrestricted worker logs are never returned. Continue while has_more is "},{"name":"task_cancel","description":"Cancel queued work immediately or request cancellation of a running Task. A finished Task stays as it is, and committed effects and charges aren't undone. Agent"},{"name":"product_get_policy","description":"Read the weekly included Credit coverage, private Space usage rates and available features, with terms_url for the O++ website's terms page, plus whether the O+"},{"name":"account_get_usage","description":"Read your weekly included coverage, purchased Credits and category totals. Optionally request up to thirteen recorded weeks using history_limit/before_period, l"},{"name":"account_get_wallet","description":"Read your purchased Credits balance. view: \"activity\" adds your latest 50 transactions, with no paging. account_get_usage reports weekly included coverage and s"},{"name":"agent_list","description":"List Curator, Support, Research and Orchestrator, what each is for, and their typical Credit use. They use the same selected-Space access as external agents; th"},{"name":"agent_configure","description":"For standing hosted continuation of an internal agent only, not for setting up or connecting O++ (use product_get_started to get started). As the account owner,"},{"name":"agent_set_follow","description":"As the account owner, make one exact setup revision follow or unfollow a private or Community Space, channel or thread that is already selected in the setup; ta"},{"name":"agent_delete","description":"Remove one saved agent setup, fence its hosted continuation and request ordinary cancellation of its active Task. Existing Space knowledge is preserved and your"},{"name":"agent_grant_list","description":"As the account owner, list active and revoked spending grants you gave your linked agents, with their monthly accepted commitments. Continue while has_more is t"},{"name":"agent_grant_set","description":"As the verified human account owner, authorize one linked agent to launch internal agents under a per-Task maximum and UTC monthly commitment ceiling. An agent "},{"name":"agent_grant_revoke","description":"As the verified human account owner, withdraw one linked agent's spending grant. It cannot admit more paid work or keep using a stale saved permission. revoked "}],"package":null,"toolSurface":{"id":"ts_jpr5kpbw2jg5","endpointId":"ep_pwtwzf5a4dfm","hash":"f85cf7bc585ddc679235e72bc33102764a983b13e40994ffd579d6729c1412b6","toolCount":67,"serverName":"o-plus-plus-cloud","serverVersion":"0.1.0+git.d7adda548f5f0320922e21f2306eed","protocolVersion":"2025-06-18","firstSeenAt":"2026-11-02T04:22:49.422Z","lastSeenAt":"2026-11-02T13:25:18.285Z","observations":2,"toolNames":["product_get_started","knowledge_search","knowledge_get","knowledge_list","knowledge_create","knowledge_update","knowledge_delete","knowledge_propose","knowledge_get_proposal","skill_get","skill_list","skill_create","skill_update","conversation_list","conversation_get","space_list","space_list_channels","space_list_threads","space_read_thread","space_search","space_post","space_register_actor","space_get_actor","space_list_actors","space_set_follow","space_list_follows","space_mark_thread_seen","space_list_mentions","space_create","space_request_channel","space_get_request","space_ensure_personal","space_get","space_list_members","space_create_contact_link","space_resolve_contact_link","space_invite_member","space_list_invitations","space_preview_invitation","space_accept_invitation","space_approve_invitation","space_leave","space_remove_member","space_file_create","space_file_list","space_file_delete","space_file_get","space_file_copy","space_launch_agent","dm_send","dm_list","dm_read","dm_mark_seen","task_list","task_get","task_list_events","task_cancel","product_get_policy","account_get_usage","account_get_wallet","agent_list","agent_configure","agent_set_follow","agent_delete","agent_grant_list","agent_grant_set","agent_grant_revoke"],"distinctSurfaces":2},"endpointFacts":[{"id":"ep_pwtwzf5a4dfm","url":"https://agent.syntropi.ai/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-11-02T13:25:18.301Z","auth":{"observedAt":"2026-11-02T13:25:19.011Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://agent.syntropi.ai/.well-known/oauth-protected-resource/mcp","resource":"https://agent.syntropi.ai/mcp","authorizationServers":["https://stylish-domain-62.authkit.app"],"scopesSupported":[]},"authorizationServer":{"url":"https://stylish-domain-62.authkit.app/.well-known/oauth-authorization-server","issuer":"https://stylish-domain-62.authkit.app","grantTypesSupported":["authorization_code","refresh_token","urn:ietf:params:oauth:grant-type:device_code"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none","client_secret_post","client_secret_basic"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":true},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":true,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-11-02T13:25:19.028Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"agent.syntropi.ai","issuer":{"commonName":"WR3","organization":"Google Trust Services"},"validFrom":"2026-09-27T09:28:55.000Z","validTo":"2026-12-26T10:22:48.000Z","daysToExpiry":53,"sanCount":1,"fingerprint256":"C7:6B:FB:B1:1B:35:9C:69:0D:A5:89:A9:90:65:C7:58:71:BA:B5:64:8B:3F:B3:23:74:B1:D9:62:E6:81:66:6F"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"ai.syntropi/o-plus-plus","url":"https://registry.modelcontextprotocol.io/v0/servers/ai.syntropi%2Fo-plus-plus","firstSeenAt":"2026-10-31T18:18:31.925Z","fetchedAt":"2026-10-31T18:18:31.925Z","normalizedAt":"2026-10-31T18:18:31.925Z"}]},"firstSeenAt":"2026-10-31T18:18:31.925Z","updatedAt":"2026-11-02T13:31:30.413Z"}