Track partnership work, log mission hours, and see what needs your approval on 1lev1.com.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Save a list: a PROFILE is saved to their profile right away (what they set aside leaves it; resources are only added). A WISH: its own rows are saved - a draft stays a draft (publishing is theirs, on the site: siteUrl), and rows a supplier already answered are never changed here. A RIKMA is never created here - you get the reviewUrl to give them. Docs: https://1lev1.com/mcp#applyAssistantTool
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Save a list: a PROFILE is saved to their profile right away (what they set aside leaves it; resources are only added). A WISH: its own rows are saved - a draft stays a draft (publishing is theirs, on the site: siteUrl), and rows a supplier already answered are never changed here. A RIKMA is never created here - you get the reviewUrl to give them. Docs: https://1lev1.com/mcp#applyAssistantTool
| Argument | Type | Description |
|---|---|---|
| sessionId* | string | |
| expectedVersion* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sessionId",
"expectedVersion"
],
"properties": {
"sessionId": {
"type": "string"
},
"expectedVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
}Archive (soft-delete) a personal product (origin=personal) you own. Removing a product that belongs to the rikma is a consent flow (proposeObjectArchive — members approve, silence approves at restime), so for those this tool returns the moach link instead of archiving. An archived product stays reachable at /gift/[id] for old orders and sales but vanishes from /gift and the storefront catalog. Never a hard delete — history matters. Unarchiving is done in the moach. Docs: https://1lev1.com/mcp#archiveRikmaProductTool
| Argument | Type | Description |
|---|---|---|
| archived* | boolean | true = archive. false (unarchive) is not done here — the tool returns the moach link. |
| productId* | string | Matanot id. |
| projectId* | string | Rikma id the product is listed in. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"productId",
"archived"
],
"properties": {
"archived": {
"type": "boolean",
"description": "true = archive. false (unarchive) is not done here — the tool returns the moach link."
},
"productId": {
"type": "string",
"description": "Matanot id."
},
"projectId": {
"type": "string",
"description": "Rikma id the product is listed in."
}
},
"additionalProperties": false
}Attach an existing object - an open mission, an open resource, a mission in progress, or a mission/resource still being voted on - to a process, so what the rikma is pursuing and what it is actually doing about it stay connected. It does not create the object: create it first (prepareMissionTool, createTaskTool, or the URL the tool returns), then attach it. Docs: https://1lev1.com/mcp#attachToProcessTool
| Argument | Type | Description |
|---|---|---|
| name | string | Its name, for the process timeline. |
| entityId* | string | Id of that object. |
| processId* | string | Process id, from listRikmaProcesses or startProcess. |
| projectId* | string | Rikma (project) id. |
| entityType* | string | What kind of object is being attached. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"processId",
"entityType",
"entityId"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"description": "Its name, for the process timeline."
},
"entityId": {
"type": "string",
"description": "Id of that object."
},
"processId": {
"type": "string",
"description": "Process id, from listRikmaProcesses or startProcess."
},
"projectId": {
"type": "string",
"description": "Rikma (project) id."
},
"entityType": {
"enum": [
"openMission",
"openMashaabim",
"mesimabetahalich",
"maap",
"pendm",
"pmash"
],
"type": "string",
"description": "What kind of object is being attached."
}
},
"additionalProperties": false
}Create a planning board from rows YOU already structured. Use this when the conversation already holds the breakdown - decisions, scope, a task list: your rows are saved as written, with no second model rewriting or dropping them. Nothing is created - every row is a proposal the user approves in the real creation form at the returned reviewUrl. Every row needs a name AND a descrip; rows without one are not saved and come back in `rejected`. Use planProjectWorkTool instead when the user only has a loose idea in free text. Requires a projectId. On failure, `error.retryable` says whether calling again can help. Docs: https://1lev1.com/mcp#createPlanBoardTool
| Argument | Type | Description |
|---|---|---|
| items* | array | The rows, in the order the user should see them. 1 to 40. |
| title* | string | Board title - the direction these rows advance. |
| descrip | string | One or two plain-text sentences on what this board is for. |
| projectId* | string | ID of the project to plan for. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"title",
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"name",
"descrip"
],
"properties": {
"imp": {
"enum": [
"must",
"nice"
],
"type": "string",
"description": "must = the direction fails without it. Default nice."
},
"name": {
"type": "string",
"description": "Short title."
},
"type": {
"enum": [
"mission",
"act",
"resource",
"product",
"note"
],
"type": "string",
"description": "mission = equity-bearing work a partner takes on; act = a chore for an existing member or role inside a running mission; resource = something the project needs (money, equipment, space, knowledge); product = something the project sells; note = a remark, no form."
},
"price": {
"type": "number",
"description": "resource / product only."
},
"roles": {
"type": "array",
"items": {
"type": "string"
},
"description": "mission only: role names, free text, matched or created like skills."
},
"valph": {
"type": "number",
"description": "mission only: value per hour."
},
"kindOf": {
"enum": [
"money",
"equipment",
"space",
"knowledge",
"other"
],
"type": "string",
"description": "resource / product only."
},
"nhours": {
"type": "number",
"description": "mission only: estimated hours."
},
"skills": {
"type": "array",
"items": {
"type": "string"
},
"description": "mission only: skill names, free text. Matched to the platform catalogue; missing ones are created."
},
"descrip": {
"type": "string",
"description": "REQUIRED. What has to be done, its scope, and what done looks like. For \"mission\" rows send rich HTML - a short intro <p> then a <ul> of concrete deliverables (allowed: p, h3, h4, ul, ol, li, strong, em, a, br). Do NOT HTML-escape it. Other types are saved as plain text (tags removed). Up to 8000 characters."
},
"quantity": {
"type": "number",
"description": "resource / product only."
},
"workways": {
"type": "array",
"items": {
"type": "string"
},
"description": "mission only: work-mode names (e.g. \"remote\"), free text, matched or created like skills."
},
"rationale": {
"type": "string",
"description": "One sentence on why this row, shown to the members."
},
"missionName": {
"type": "string",
"description": "act only: the in-progress mission the chore belongs to (getMemberMissionsTool)."
},
"assigneeKind": {
"enum": [
"person",
"role"
],
"type": "string",
"description": "act only: whether the chore is for a person or a role."
},
"assigneeName": {
"type": "string",
"description": "act only: a member username or role name, as getProjectMembersTool returns it."
}
},
"additionalProperties": false
},
"maxItems": 40,
"minItems": 1,
"description": "The rows, in the order the user should see them. 1 to 40."
},
"title": {
"type": "string",
"description": "Board title - the direction these rows advance."
},
"descrip": {
"type": "string",
"description": "One or two plain-text sentences on what this board is for."
},
"projectId": {
"type": "string",
"description": "ID of the project to plan for."
}
},
"additionalProperties": false
}Prepare the "create a Partnership" form (a Partnership is also called a rikma, or "רקמה") and return a link that opens it pre-filled. Nothing is created yet: status is "prepared" until the user opens the link and approves the form. Give the user `url` exactly as returned — do not decode, shorten or rebuild it. A public-benefit or nonprofit initiative is a normal Partnership, not a failed business: every Partnership has a public support page (/project/<id>/support) where anyone can donate to it or fund a specific mission, so the public can cover the members' work hours even when nothing is ever sold. Docs: https://1lev1.com/mcp#createProjectTool
| Argument | Type | Description |
|---|---|---|
| ont | boolean | Whether the partnership is continuous (true) or a one-time event (false). |
| res | string | Response time ID: feh (48h), sth (72h), nsh (96h), sevend (1 week). |
| url | string | A link to a website related to the project. |
| desc | string | A short public description (plain text, one or two sentences). |
| name* | string | The name of the new Partnership. Required. |
| vals | array | Values and goals of the partnership, as their names. A value may contain commas. |
| profit |
Create a fixed-price product (Matanot) for the rikma. Three hosting modes (PLAN_USER_OFFERINGS §3.3): `projectId` alone → the product lives on that rikma (caller must be a member); without it → personal offer hosted on the caller’s home rikma (origin=personal); `newRikmaName` → a fresh named rikma is created first and hosts it. Use it for the storefront: name, description, price, stock (quant, -1 = unlimited), kindOf (total/monthly/yearly/daily/unlimited), location, and an uploaded image id (picId). For a complex recipe (BOM, margin, estimated price) use createComplexMatanot in the UI — the MCP creates the simple, shippable shelf item. Members or personal owner. Returns the new Matanot id and where it lives. Docs: https://1lev1.com/mcp#createRikmaProductTool
| Argument | Type | Description |
|---|---|---|
| name* | string | Product name — shown in the catalog and on the /gift page. |
| picId | string | Strapi upload id of the cover image. |
| price* | number | Fixed price in the rikma currency (or the currency code you pass). |
| quant | number | Available quantity: a number, -1 for unlimited, or omit for 0. |
| kindOf | string | How price×quantity is understood. Default total. |
| descrip | string | Long description shown to the buyer. |
| location | object |
Create a task (Act, "מטלה") in a project - the way a member gets something new done. Whenever the user wants something new to happen in a project, offer this option. Choose the shape: - A mission in progress already covers the work: create an act linked to it - assignedUserId = the mission holder, missionId from getMemberMissionsTool. - Nobody in the project does this kind of work, so an implementer must be found: this is not an act - prepare a mission with prepareMissionTool. - No specific person yet: create the act with no assignee and pass tafkidims = the roles that fit it (IDs from getProjectMembersTool). The holders of those roles are notified and one of them picks it up. An act assigned to another person waits for that person to approve it; nobody is bound until they accept. The caller must be a member of the project. Requires a project ID. Docs: https://1lev1.com/mcp#createTaskTool
| Argument | Type | Description |
|---|---|---|
| link | string | Optional URL related to the task |
| name* | string | Short name/title of the task |
| dateF | string | End date (ISO format) |
| dateS | string | Start date (ISO format) |
| hashivut | string | Urgency level of the task |
| missionId | string | ID of the mission in progress (mesimabetahaliches) this task belongs to, from getMemberMissionsTool. Goes with assignedUserId. |
| projectId |
The person says an open mission suggested to them is not relevant: it stops being suggested to them. A filter for them only - nobody is told no. Docs: https://1lev1.com/mcp#dismissOfferTool
| Argument | Type | Description |
|---|---|---|
| openMissionId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"openMissionId"
],
"properties": {
"openMissionId": {
"type": "string"
}
},
"additionalProperties": false
}Find a specific mission for the user by its name. Docs: https://1lev1.com/mcp#findMissionTool
| Argument | Type | Description |
|---|---|---|
| missionName* | string | The name of the mission to find. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"missionName"
],
"properties": {
"missionName": {
"type": "string",
"description": "The name of the mission to find."
}
},
"additionalProperties": false
}Find the projects (rikmot) the current user belongs to, newest first, with their creation time. Use this when the user mentions a project by name, wants to navigate to one, or just created one. Results are paginated: when hasMore is true, call again with offset=nextOffset. Docs: https://1lev1.com/mcp#findUserProjectsTool
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size, default 50. |
| query | string | Optional search query to filter projects by name (case-insensitive substring). |
| offset | integer | How many results to skip, default 0. |
| userId | string | User id to list projects for. Omit to use the authenticated caller. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size, default 50."
},
"query": {
"type": "string",
"description": "Optional search query to filter projects by name (case-insensitive substring)."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "How many results to skip, default 0."
},
"userId": {
"type": "string",
"description": "User id to list projects for. Omit to use the authenticated caller."
}
},
"additionalProperties": false
}Get all currently active timers for the user Docs: https://1lev1.com/mcp#getActiveTimersTool
| Argument | Type | Description |
|---|---|---|
| includeDetails | boolean | Include detailed timer information |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"includeDetails": {
"type": "boolean",
"default": true,
"description": "Include detailed timer information"
}
},
"additionalProperties": false
}Read the person's current draft list on 1lev1 - a rikma blueprint (kind 'rikma'), or later their profile or a wish - with its rows, their keys and status, the version, and what was changed recently (also from the site). Call it before setAssistantItems when you are not sure you have the latest version. Docs: https://1lev1.com/mcp#getAssistantTool
| Argument | Type | Description |
|---|---|---|
| kind | string | Latest session of this kind. |
| sessionId | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"kind": {
"enum": [
"rikma",
"profile",
"wish"
],
"type": "string",
"description": "Latest session of this kind."
},
"sessionId": {
"type": "string"
}
},
"additionalProperties": false
}List a project member's in-progress missions. A task is linked to a mission-in-progress the assignee performs, so call this after choosing the assignee (a person) to pick the missionId to pass to createTaskTool. If no mission in progress covers the work, it is not a task: prepare a mission with prepareMissionTool instead. Docs: https://1lev1.com/mcp#getMemberMissionsTool
| Argument | Type | Description |
|---|---|---|
| userId* | string | ID of the member (assignee) whose in-progress missions to list |
| projectId* | string | ID of the project |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"userId"
],
"properties": {
"userId": {
"type": "string",
"description": "ID of the member (assignee) whose in-progress missions to list"
},
"projectId": {
"type": "string",
"description": "ID of the project"
}
},
"additionalProperties": false
}Get detailed information about a specific mission including tasks, timeline, and current status Docs: https://1lev1.com/mcp#getMissionDetailsTool
| Argument | Type | Description |
|---|---|---|
| missionId* | string | Mission ID to get details for |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"missionId"
],
"properties": {
"missionId": {
"type": "string",
"description": "Mission ID to get details for"
}
},
"additionalProperties": false
}Get statistics about user missions including counts by status, time spent, etc. Docs: https://1lev1.com/mcp#getMissionStatsTool
| Argument | Type | Description |
|---|---|---|
| projectId | string | Get stats for specific project only |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"projectId": {
"type": "string",
"description": "Get stats for specific project only"
}
},
"additionalProperties": false
}What waits for the user and what is new for them - across their rikmas, their wishes (concierge) and their deals. Use it for "what's new today", "what is waiting for me", "what do I need to answer", "what is happening in rikma X". Returns `waiting`: each item is ONE ready sentence in the user's language, with its figures, where it is, its deadline (when `silenceApproves` is true, no answer by the deadline approves it automatically - always say so), and a `link` where the user answers it. Relay the sentences, most urgent first; do not reword figures. Also returns `work` (their missions, missions about to go dormant, open/overdue tasks), `whatsNew` (counts of new missions/resources/products/sales in their rikmas since yesterday) and `suggestions` (open matches for them). `unavailable` names parts that could not be read - say they could not be checked rather than calling them empty. Read-only: approving, countering or discussing happens on the site, by the user. Docs: https://1lev1.com/mcp#getMyUpdatesTool
| Argument | Type | Description |
|---|---|---|
| lang | string | The language to word the sentences in. Default: the user's language. |
| limit | integer | How many waiting items at most (default 20). |
| rikma | string | Only rikmas whose name contains this text - use when the user names a rikma and you have no id. |
| projectId | string | Only this rikma (its id, e.g. from findUserProjectsTool). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"lang": {
"enum": [
"he",
"en",
"ar",
"ru",
"es"
],
"type": "string",
"description": "The language to word the sentences in. Default: the user's language."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "How many waiting items at most (default 20)."
},
"rikma": {
"type": "string",
"description": "Only rikmas whose name contains this text - use when the user names a rikma and you have no id."
},
"projectId": {
"type": "string",
"description": "Only this rikma (its id, e.g. from findUserProjectsTool)."
}
},
"additionalProperties": false
}Get general information about the 1lev1 platform, its goals, and features. Docs: https://1lev1.com/mcp#getPlatformInfo
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}Get the facts about one rikma (project): name, public description, values, links (website, GitHub, Drive, social), members, roles, open missions, missions in progress (and who holds them), open and in-progress resources, and products. Call this before planning or writing anything in a rikma - it is cheap and returns facts, unlike scanProjectDirectionsTool. For a rikma the user is not a member of, only the public face is returned (isMember:false). Docs: https://1lev1.com/mcp#getProjectDetailsTool
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Rikma (project) id, from findUserProjectsTool. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Rikma (project) id, from findUserProjectsTool."
}
},
"additionalProperties": false
}List the people (members) and roles (tafkidim) of a project. Use this to resolve a task assignee - a person or a role - to its ID before calling createTaskTool. For a task with no specific person, pick the roles that fit it here and pass their IDs as tafkidims. Docs: https://1lev1.com/mcp#getProjectMembersTool
| Argument | Type | Description |
|---|---|---|
| query | string | Optional text to filter people or roles by name |
| projectId* | string | ID of the project |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId"
],
"properties": {
"query": {
"type": "string",
"description": "Optional text to filter people or roles by name"
},
"projectId": {
"type": "string",
"description": "ID of the project"
}
},
"additionalProperties": false
}Get the pulse of one rikma as numbers: members, open missions, missions in progress, open resources, open decisions (votes), active timers, missions finished and hours logged in the last N days, and when anything last happened. Use it to judge whether a rikma is active before planning. Members only; no per-member financial data. Docs: https://1lev1.com/mcp#getProjectStatsTool
| Argument | Type | Description |
|---|---|---|
| days | integer | Window for the "recent" numbers, default 30. |
| projectId* | string | Rikma (project) id, from findUserProjectsTool. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId"
],
"properties": {
"days": {
"type": "integer",
"maximum": 365,
"minimum": 1,
"description": "Window for the \"recent\" numbers, default 30."
},
"projectId": {
"type": "string",
"description": "Rikma (project) id, from findUserProjectsTool."
}
},
"additionalProperties": false
}Get one order of the rikma by its ref (`<rikmaId>:<externalId>`, as POST /orders answered). Returns the same enriched order as the list, plus the holder and the note the rikma sees. Members only — buyer contact is members-only. Docs: https://1lev1.com/mcp#getRikmaOrderTool
| Argument | Type | Description |
|---|---|---|
| orderRef* | string | The order ref, e.g. "57:pi_3Q8x…" — or an orderId (the tool tries both). |
| projectId* | string | Rikma id. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"orderRef"
],
"properties": {
"orderRef": {
"type": "string",
"description": "The order ref, e.g. \"57:pi_3Q8x…\" — or an orderId (the tool tries both)."
},
"projectId": {
"type": "string",
"description": "Rikma id."
}
},
"additionalProperties": false
}Get one product of the rikma in full merchant detail: its base row (price, quant, pricingMode, status_of_voting, lifecycle, archived, hideFromDiscovery, lowStockAt, unit, minOrder, maxOrder, leadTimeHours, externalKey, pricing fields), its gallery and delivery options, its option axes (product-option), every variant (sku, axisKey, optionValues, price, quant, active, position, externalKey), categories, and computed inventory (effectiveStock, isLowStock, lowVariants). Members only. Use it to verify a product before editing stock, pricing or variants. Docs: https://1lev1.com/mcp#getRikmaProductTool
| Argument | Type | Description |
|---|---|---|
| productId* | string | Matanot id (from listRikmaProducts). |
| projectId* | string | Rikma (project) id. |
| includeArchived | boolean | Allow a row that is archived lifecycle=false. Default true for a direct get. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"productId"
],
"properties": {
"productId": {
"type": "string",
"description": "Matanot id (from listRikmaProducts)."
},
"projectId": {
"type": "string",
"description": "Rikma (project) id."
},
"includeArchived": {
"type": "boolean",
"description": "Allow a row that is archived lifecycle=false. Default true for a direct get."
}
},
"additionalProperties": false
}Describe how a rikma delivers what it sells: whether shipping is set up, the currency, handling days, the lowest free-delivery threshold, each zone (countries, districts, cities, postal prefixes) with its methods (fee, freeOver, minSubtotal, ETA days, dispatch days), the pickup points, and per-product rules (which products are pickup/digital only). Members only. For "how much is delivery of X to <city>?" use quoteShipping — it prices a real cart. Docs: https://1lev1.com/mcp#getShippingConfigTool
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Rikma (project) id, from findUserProjectsTool. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Rikma (project) id, from findUserProjectsTool."
}
},
"additionalProperties": false
}Inventory overview for a rikma: how many products are active, archived, low, out of stock, and per-variant stock. Also loads the waiting orders and any oversold (short) units so the seller knows what the shelf does not cover. Members only. This is what the Stock tab of sales/manage shows, as facts an agent can act on. Docs: https://1lev1.com/mcp#getShopInventoryTool
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Rikma id. |
| includeArchived | boolean | Count archived products in the totals. Default false. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Rikma id."
},
"includeArchived": {
"type": "boolean",
"description": "Count archived products in the totals. Default false."
}
},
"additionalProperties": false
}Get a structured list of available pages on the 1lev1.com site, useful for navigation. Docs: https://1lev1.com/mcp#getSitePagesTool
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}Get one wish (concierge request): what it needs broken into missions and resources, its coverage, and the proposals on it. Full detail for the wish owner and for anyone who proposed on it; others see only the public card of an open wish. Accepting or declining a proposal is never done here - open the returned URL and let the person decide. Docs: https://1lev1.com/mcp#getWishDetailsTool
| Argument | Type | Description |
|---|---|---|
| wishId* | string | Wish (ratson) id, from listMyWishes or a /concierge or /wish URL. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wishId"
],
"properties": {
"wishId": {
"type": "string",
"description": "Wish (ratson) id, from listMyWishes or a /concierge or /wish URL."
}
},
"additionalProperties": false
}List the conversations (forums) the caller takes part in - one per mission, act, decision, profit split or wish proposal they are involved in, newest first, with the last message. Use it to find the forumId of the thread a request is about. Docs: https://1lev1.com/mcp#listMyConversationsTool
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum rows, default 25. |
| projectId | string | Only conversations of this rikma. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Maximum rows, default 25."
},
"projectId": {
"type": "string",
"description": "Only conversations of this rikma."
}
},
"additionalProperties": false
}The supplier side of the concierge: every proposal the caller is the proposer of - what someone asked them to provide and what they offered, with its status. Use it to answer "who wants something from me". Responding to one happens on its page, not here. Docs: https://1lev1.com/mcp#listMyWishOffersTool
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}List the caller's own wishes (concierge requests): status, coverage, and how many missions and resources each one still needs. Use it to answer "what did I ask for" and to pick the wish a follow-up is about. Docs: https://1lev1.com/mcp#listMyWishesTool
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}List what a rikma already has and needs: its links (live website, repo, Drive, social), resources in progress (equipment, money, services someone provides) and open resources it is looking for, plus its products. Use it to check whether a rikma already has a website/repo before suggesting one. Members only. Docs: https://1lev1.com/mcp#listProjectResourcesTool
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Rikma (project) id, from findUserProjectsTool. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Rikma (project) id, from findUserProjectsTool."
}
},
"additionalProperties": false
}List the paid orders the storefront reported (POST /orders, §3.3) for one rikma: ref, displayNumber, status (paid/shipped/fulfilled/cancelled), oversold, total, currency, buyer (name/email/phone — sensitive), delivery preference and address, payment ref/method, holder, paidAt/shippedAt/fulfilledAt, lines (productId/variantId, nameSnapshot, optionLabelSnapshot, skuSnapshot, quantity, unitPrice, lineTotal) and sales. Members only — buyer contact leaves the server only inside a members-only response (§5.6) and is never copied to a webhook. Docs: https://1lev1.com/mcp#listRikmaOrdersTool
| Argument | Type | Description |
|---|---|---|
| limit | integer | Return at most this many, default 50. |
| status | string | Filter to one lifecycle state. |
| projectId* | string | Rikma id. |
| oversoldOnly | boolean | Only orders whose stock ran short. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Return at most this many, default 50."
},
"status": {
"enum": [
"paid",
"shipped",
"fulfilled",
"cancelled"
],
"type": "string",
"description": "Filter to one lifecycle state."
},
"projectId": {
"type": "string",
"description": "Rikma id."
},
"oversoldOnly": {
"type": "boolean",
"description": "Only orders whose stock ran short."
}
},
"additionalProperties": false
}List a rikma's processes: the open-ended threads it is running - an approach to a partner, a launch, a funding attempt - each with its conversation and the open missions, resources and other objects that have formed out of it. Use it to see what is already in motion before starting something new. Members only. Docs: https://1lev1.com/mcp#listRikmaProcessesTool
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Rikma (project) id. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Rikma (project) id."
}
},
"additionalProperties": false
}List the option vocabulary (product-option) of one rikma: axes like size / colour, each with its values (value, label, hex, image). These are the axes a product declares it uses (product.options) and the `axisKey` of a variant is built from them. Members only. Use it to see what size M really is before writing a variant that claims it. Docs: https://1lev1.com/mcp#listRikmaProductOptionsTool
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Rikma id. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Rikma id."
}
},
"additionalProperties": false
}List the variant rows (product-variant, the SKU) of products of one rikma — price, compareAtPrice, quant (-1 unlimited), active, position, sku, name, optionValues and axisKey, with productId and pics. This is the truth the checkout consults. Members only. Docs: https://1lev1.com/mcp#listRikmaProductVariantsTool
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Rikma id. |
| productIds* | array | Matanot ids to pull variants for (from listRikmaProducts). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"productIds"
],
"properties": {
"projectId": {
"type": "string",
"description": "Rikma id."
},
"productIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"minItems": 1,
"description": "Matanot ids to pull variants for (from listRikmaProducts)."
}
},
"additionalProperties": false
}List the products (Matanot) of one rikma for the merchant: name, price, pricing mode, status, archived, kind, quantity (-1 = unlimited), lowStockAt, stockTotal, hasVariants, and each variant (sku, price, quant, active, axisKey). This is the seller view used by the sales/manage tabs (moachShopProducts) — not the public catalog. Members only. Call it first to see what you have on the shelf before creating, editing stock or checking orders. Docs: https://1lev1.com/mcp#listRikmaProductsTool
| Argument | Type | Description |
|---|---|---|
| kindOf | string | Filter by kindOf: total, monthly, yearly, daily, unlimited. |
| search | string | Free-text filter over name (case-insensitive, in-memory). |
| projectId* | string | Rikma (project) id, from findUserProjectsTool. |
| includeArchived | boolean | Also return archived products. Default false. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId"
],
"properties": {
"kindOf": {
"type": "string",
"description": "Filter by kindOf: total, monthly, yearly, daily, unlimited."
},
"search": {
"type": "string",
"maxLength": 120,
"description": "Free-text filter over name (case-insensitive, in-memory)."
},
"projectId": {
"type": "string",
"description": "Rikma (project) id, from findUserProjectsTool."
},
"includeArchived": {
"type": "boolean",
"description": "Also return archived products. Default false."
}
},
"additionalProperties": false
}List user missions with various filtering options Docs: https://1lev1.com/mcp#listUserMissionsTool
| Argument | Type | Description |
|---|---|---|
| limit | number | Maximum number of missions to return |
| filter | string | Filter missions by status |
| projectId | string | Filter by specific project ID (numeric) |
| missionName | string | Search for missions by name (partial match) |
| projectName | string | Filter by project name |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"default": 10,
"description": "Maximum number of missions to return"
},
"filter": {
"enum": [
"all",
"active",
"completed",
"startable",
"stoppable",
"overdue"
],
"type": "string",
"default": "all",
"description": "Filter missions by status"
},
"projectId": {
"type": "string",
"description": "Filter by specific project ID (numeric)"
},
"missionName": {
"type": "string",
"description": "Search for missions by name (partial match)"
},
"projectName": {
"type": "string",
"description": "Filter by project name"
}
},
"additionalProperties": false
}Turn a 1lev1.com page into a link to give the user - it does not open anything by itself. Pass the path (e.g. "/lev", or "/moach/<projectId>" with idPr) and a short name for it; the result carries the path to put after https://1lev1.com. getSitePagesTool lists the valid paths. Docs: https://1lev1.com/mcp#navigateToPageTool
| Argument | Type | Description |
|---|---|---|
| url* | string | The URL path to navigate to. |
| idPr | string | The ID of the project to navigate to, if applicable. |
| pageName* | string | A descriptive name for the page being navigated to. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url",
"pageName"
],
"properties": {
"url": {
"type": "string",
"description": "The URL path to navigate to."
},
"idPr": {
"type": "string",
"description": "The ID of the project to navigate to, if applicable."
},
"pageName": {
"type": "string",
"description": "A descriptive name for the page being navigated to."
}
},
"additionalProperties": false
}Get the rikma's own general conversation - the one thread that belongs to the whole rikma rather than to a single mission, act or decision. It is created the first time someone opens it. Use it for "what are we doing next" talk; anything about a specific mission, decision or profit split belongs in that thing's own thread, where it stays on record. Returns a forumId for readConversation and postConversationMessage. Members only. Docs: https://1lev1.com/mcp#openRikmaConversationTool
| Argument | Type | Description |
|---|---|---|
| projectId* | string | Rikma (project) id. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "Rikma (project) id."
}
},
"additionalProperties": false
}Turn a free-text brief into a planning board for a project: proposed missions, chores (acts) and resources, deduplicated against what the project already has. Nothing is created - the tool returns a reviewUrl where the user approves each row in the real form. Use this when the user describes something they want the project to achieve in loose words. If the conversation already holds a concrete breakdown (tasks, scope, decisions), use createPlanBoardTool instead - it saves your rows as written. Requires a projectId (use findUserProjectsTool first if unknown). On failure, `error.retryable` says whether calling again can help. Docs: https://1lev1.com/mcp#planProjectWorkTool
| Argument | Type | Description |
|---|---|---|
| text* | string | What the user wants to advance, in their own words. At least 20 characters - the richer the brief, the better the breakdown. |
| title | string | Optional title for the board; otherwise one is suggested. |
| projectId* | string | ID of the project to plan for. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"text"
],
"properties": {
"text": {
"type": "string",
"description": "What the user wants to advance, in their own words. At least 20 characters - the richer the brief, the better the breakdown."
},
"title": {
"type": "string",
"description": "Optional title for the board; otherwise one is suggested."
},
"projectId": {
"type": "string",
"description": "ID of the project to plan for."
}
},
"additionalProperties": false
}Post a message, as the user, in a conversation (forum) they take part in - an update on a mission, an answer in a decision thread, a note on a profit split. The other participants are notified. Use it ONLY when the user asked to say or record something; never to think out loud, and never to agree or refuse on their behalf (approving a decision, a split or a proposal is always their own click). The message is marked as written through an agent. Docs: https://1lev1.com/mcp#postConversationMessageTool
| Argument | Type | Description |
|---|---|---|
| forumId* | string | Forum id, from listMyConversations. |
| message* | string | The message, in the user's own words and language. Plain text. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"forumId",
"message"
],
"properties": {
"forumId": {
"type": "string",
"description": "Forum id, from listMyConversations."
},
"message": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"description": "The message, in the user's own words and language. Plain text."
}
},
"additionalProperties": false
}Prepare a rikma on 1lev1 for ANOTHER person - not the user you are talking to - and get two links to pass on to them: (1) `previewUrl` - the rich public rikma page showing products, missions, hours/rates, resources, values and share split (read-only, safe to share anywhere, and live-synced with behind-the-scenes edits), and (2) `manageUrl` - the behind-the-scenes studio where they can edit everything without logging in first (add/remove missions, products, resources and partners, adjust hours +/- and rates, preview the public page, and click to sign up or claim and create the rikma). Use this when a member markets 1lev1 and sets up a new customer's business, or helps another member get started. NEVER use it for the user themselves; for their own business, partnership or idea use proposeRikmaBlueprint. If it is not clear who the rikma is for, ask before calling. Pass that other person's name and email as the user gave them for this, and the intent and blueprint exactly as prepareSignup takes them (include detailed missions with hours & ratePerHour where relevant so they can tweak hours immediately). Direct `signupUrl` (no account yet) or `receiveUrl` (existing account) is also returned. Nothing is created until the recipient creates it, and the caller keeps no access once claimed. Refused when the email is the user's own. Valid 14 days. Docs: https://1lev1.com/mcp#prepareForSomeoneElseTool
| Argument | Type | Description |
|---|---|---|
| lang | string | |
| name* | string | The name the person gave you to sign up with. |
| email* | string | The email the person gave you to sign up with - the confirmation goes there. |
| intent* | string |
Prepare the mission creation form and return a link that opens it pre-filled. Use this when the user should review and confirm the mission before it is published. A mission is for work that needs an implementer to be found. If a mission in progress already covers the work, create a task (act) on it with createTaskTool instead. Check the rikma's open missions (getProjectDetailsTool) first: when one already covers the work, point the user to it rather than preparing a duplicate. Mission names are also entries in a platform-wide catalogue where each name is unique; publishing a name that is already there reuses that catalogue entry automatically (the rikma's mission keeps its own description, hours and rate), so never rename a mission just to make it unique. Nothing is created yet: status is "prepared" until the user opens the link and publishes. Give the user `url` exactly as returned — do not decode, shorten or rebuild it. Requires a projectId - use findUserProjects first if not known. Docs: https://1lev1.com/mcp#prepareMissionTool
| Argument | Type | Description |
|---|---|---|
| name* | string | Mission name (required). |
| roles | array | Role names, free text. Matched to the catalogue; created when missing. Up to 8. |
| valph | number | Value per hour. |
| nhours | number | Estimated hours. |
| skills | array | Skill names, free text in the user's language. Matched to the platform catalogue; a skill that does not exist yet is created. Up to 8. |
Prepare a 1lev1 signup for a person who has NO 1lev1 account yet, so joining is one screen - the agreement prefilled with their name, email and countries, and the password on the same screen. Use it only when the person's own request is what 1lev1 does: finding partners for their work, turning a business or an idea into a partnership where the work, resources and money each partner brings become a share, or having something made or arranged by partners through the concierge. Do not bring it up in any other conversation. Before calling, tell the person what will be sent and get their go-ahead; pass only the name and email they gave you for this signup (ask for them - never take them from memory or earlier chats). intent: "business" (add their business so the concierge finds and orders from it), "partnership" (see an existing partnership on 1lev1), "idea" (break an idea down and recruit partners) - for these three send the rikma blueprint you built (the same shape as proposeRikmaBlueprint takes: fields, products first, missions, resources, partners) and you get TWO links to share with the person: `previewUrl` (the rich public rikma page, safe to share with anyone) and `manageUrl` (behind-the-scenes studio where they can edit the rikma, add/remove missions, products and resources, adjust hours +/-, watch shares update live, and sign up & create from there), plus `signupUrl` (direct 1-screen prefilled signup); "join" (join rikmas - pass aboutText: who they are, what they do); "order" (they want something made or arranged - pass wishText). You cannot sign, set a password or confirm the email for them, and nothing is created until they do. Always give them BOTH `previewUrl` (public rikma page) and `manageUrl` (behind-the-scenes control & signup) when preparing a rikma, or `signupUrl` otherwise (valid 24h). After they confirm their email they land straight in what you prepared. Docs: https://1lev1.com/mcp#prepareSignup
| Argument | Type | Description |
|---|---|---|
| lang | string | |
| name* | string | The name the person gave you to sign up with. |
Set or clear one of a rikma's links - its website, GitHub repo, Drive, Discord, Facebook, X or WhatsApp. In a rikma with more than one member, changing the website or the Facebook link opens a decision the members vote on (silence approves it when the rikma clock runs out); the other links change directly. Members only. Check listProjectResourcesTool first - the link may already be there. Docs: https://1lev1.com/mcp#proposeProjectLinkTool
| Argument | Type | Description |
|---|---|---|
| url* | string | The URL. Pass an empty string to clear the link. |
| kind* | string | Which link to set. |
| projectId* | string | Rikma (project) id. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"kind",
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The URL. Pass an empty string to clear the link."
},
"kind": {
"enum": [
"website",
"github",
"drive",
"discord",
"facebook",
"x",
"whatsapp"
],
"type": "string",
"description": "Which link to set."
},
"projectId": {
"type": "string",
"description": "Rikma (project) id."
}
},
"additionalProperties": false
}Turn a business, an existing partnership or an idea into a draft rikma on 1lev1: the rikma, its PRODUCTS, missions, resources and partners. Use it when someone wants to add their business so the concierge can find and order from them, to see how their partnership would look on 1lev1, or to break an idea down and recruit partners. Build it yourself from the site you read or from the conversation: - products FIRST: every distinct thing they sell is a product, with its price when it is stated (do not invent prices - leave price out and ask), and `keywords`: the words a customer would use for the need it answers, not the product name (a "brunch tray" answers "catering", "breakfast for guests"), and `categories`: 1-3 broad domains ("events", "food") - they are linked to the platform's existing categories, which the concierge compares with every wish. - missions and resources only when they make a product (put their refs in the product recipe) or when someone is still needed. holder "me" = the person you are talking to does it; holder "open" = recruit someone; holder "partner" + partnerRef = an exact `ref` from a row in `partners`. For every partner to invite, add a partner row with a user-provided email and link each mission/resource they will bring with holder "partner" and partnerRef. Do not invent or infer an email; ask the person for it. A partner row without an email cannot receive email, and a partner without linked missions/resources gets only the general rikma join invitation. - a running cost is priced per period, never as a total: rent or a subscription is a resource with kindOf "monthly" (or "yearly") and its price per month; ongoing work every month is a mission with `recurring: true` and `hours` per month. - `why` on each row: one sentence of where it came from ("the site lists it at 180"). Pass projectId to add to a rikma the person is already a member of. The draft is the user's own; a rikma prepared for another person is prepareForSomeoneElse. Show the rows to the person in the conversation, ask about anything you guessed (prices especially), and confirm every partner email before using it - never invent an address. To invite a partner to contribute, add them in partners with a ref, then set holder:"partner" and partnerRef to that exact ref on each mission/resource they will bring; listing a partner alone does not create a work invitation. Fix what they say with setAssistantItems, then give them reviewUrl: on that page they tick what to create and create it with one click. On creation the server sends a partner invitation email when delivery is allowed; registered partners also get mission/resource invitation cards. The result reports delivery and includes a join link to share if no email could be sent. Nothing exists and no invitation is sent until the person creates it there. Docs: https://1lev1.com/mcp#proposeRikmaBlueprintTool
Price delivery of a cart from one rikma to an address — "how much is delivery to Haifa?". Give the products (and variant when the product has variants) with quantities, and the address (city is enough inside Israel; the district is resolved from it). Unit prices are read from the rikma's own catalog, so free-delivery thresholds apply as at checkout. Returns every option (delivery methods, pickup points, digital, "contact the seller") with fee, whether it is free, how much more makes it free, ETA and next dispatch day, plus why delivery is unavailable (outsideZones, noDeliveryProducts, needsAddress, weightUnknown). Members only; read-only — nothing is ordered. Docs: https://1lev1.com/mcp#quoteShippingTool
| Argument | Type | Description |
|---|---|---|
| items* | array | What is being sent. |
| address | object | Where it goes. Omit to see pickup/digital options and which methods would need an address. |
| projectId* | string | Rikma (project) id, from findUserProjectsTool. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"productId"
],
"properties": {
"quantity": {
"type": "integer",
"default": 1,
"maximum": 100000,
"description": "Units. Default 1.",
"exclusiveMinimum": 0
},
"productId": {
"type": "string",
"description": "Matanot id (from listRikmaProducts)."
},
"variantId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Variant id, when the product is sold by variant (from listRikmaProducts)."
}
},
"additionalProperties": false
},
"maxItems": 50,
"minItems": 1,
"description": "What is being sent."
},
"address": {
"type": "object",
"properties": {
"zip": {
"type": "string",
"maxLength": 12,
"description": "Postal code, when known."
},
"city": {
"type": "string",
"maxLength": 120,
"description": "City name, in any language the buyer wrote it."
},
"country": {
"type": "string",
"maxLength": 2,
"description": "ISO country code, e.g. IL. Default IL."
}
},
"description": "Where it goes. Omit to see pickup/digital options and which methods would need an address.",
"additionalProperties": false
},
"projectId": {
"type": "string",
"description": "Rikma (project) id, from findUserProjectsTool."
}
},
"additionalProperties": false
}Read one conversation (forum) the caller takes part in: its messages, newest last, with who wrote each. Use it before answering in a thread, so the reply fits what was already said. Docs: https://1lev1.com/mcp#readConversationTool
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many of the most recent messages, default 30. |
| forumId* | string | Forum id, from listMyConversations. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"forumId"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "How many of the most recent messages, default 30."
},
"forumId": {
"type": "string",
"description": "Forum id, from listMyConversations."
}
},
"additionalProperties": false
}Change a list with the person's own words ("that's right, drop the second, add photography") - the platform turns them into ops. Prefer setAssistantItems when you can name the ops yourself; this one runs a model. Docs: https://1lev1.com/mcp#reviseAssistantTool
| Argument | Type | Description |
|---|---|---|
| sessionId* | string | |
| instruction* | string | |
| expectedVersion* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sessionId",
"expectedVersion",
"instruction"
],
"properties": {
"sessionId": {
"type": "string"
},
"instruction": {
"type": "string",
"maxLength": 2000,
"minLength": 1
},
"expectedVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
}Cheaply scan a project's real current state and propose a few DIRECTIONS for advancing it - strategic angles, not task lists. Use this when the user asks something open-ended like "what should we do next?" or "how do we move this forward?" and has not described a specific goal. These are saved as suggested directions only: nothing is created, and no mission, chore or resource comes out of this call. To break one direction down into concrete missions and resources afterwards, the user opens it on the returned reviewUrl and approves each row there. Requires a projectId. On failure, `error.retryable` says whether calling again can help. Docs: https://1lev1.com/mcp#scanProjectDirectionsTool
| Argument | Type | Description |
|---|---|---|
| projectId* | string | ID of the project to scan. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId"
],
"properties": {
"projectId": {
"type": "string",
"description": "ID of the project to scan."
}
},
"additionalProperties": false
}Search what the platform already offers publicly: products for sale, open missions (work looking for someone) and open resources (equipment, money, services a rikma needs). Use it before opening a new wish or mission - somebody may already do this. Public data only. Docs: https://1lev1.com/mcp#searchCatalogTool
| Argument | Type | Description |
|---|---|---|
| kinds | array | Which directories to search. Default: all three. |
| limit | integer | Maximum rows per kind, default 10. |
| query* | string | Free text; matched against names, descriptions and rikma names. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"kinds": {
"type": "array",
"items": {
"enum": [
"products",
"missions",
"resources"
],
"type": "string"
},
"description": "Which directories to search. Default: all three."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Maximum rows per kind, default 10."
},
"query": {
"type": "string",
"maxLength": 100,
"minLength": 2,
"description": "Free text; matched against names, descriptions and rikma names."
}
},
"additionalProperties": false
}Search inside the rikmas the caller belongs to: rikma names and descriptions, open missions, missions in progress, acts, open and in-progress resources, and products. Use it to find something when the rikma is not known - "where was that task about the logo". For public listings of other rikmas use searchCatalogTool instead. Docs: https://1lev1.com/mcp#searchContentTool
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum rows per kind, default 10. |
| query* | string | Free text; matched against names and descriptions. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Maximum rows per kind, default 10."
},
"query": {
"type": "string",
"maxLength": 100,
"minLength": 2,
"description": "Free text; matched against names and descriptions."
}
},
"additionalProperties": false
}Change the draft list with small ops - what the person just told you: keep ("that is right"), drop ("not now", reversible with restore), add, rename, setSpec (price, keywords, hours…), link (a product recipe), setField (the rikma name, description…). Refer to rows only by their key. Rows already created on the platform, or a wish row a supplier answered, cannot be changed here - you get reason "created"/"committed"; send the person to the site for those. Pass the version you last saw; conflict:true means it changed meanwhile (maybe on the site) - show the returned list and ask again. Docs: https://1lev1.com/mcp#setAssistantItemsTool
| Argument | Type | Description |
|---|---|---|
| ops* | array | |
| say | string | Your one-line summary of the change, for the transcript. |
| sessionId* | string | |
| instruction | string | The person's words, for the shared transcript. |
| expectedVersion* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sessionId",
"expectedVersion",
"ops"
],
"properties": {
"ops": {
"type": "array",
"items": {
"type": "object",
"required": [
"op"
],
"properties": {
"op": {
"enum": [
"keep",
"drop",
"restore",
"add",
"rename",
"setSpec",
"link",
"setField"
],
"type": "string"
},
"key": {
"type": "string",
"description": "Row key (keep/drop/restore/rename/setSpec)."
},
"why": {
"type": "string"
},
"spec": {
"type": "object",
"description": "add / setSpec: e.g. { price, kindOf, keywords, categories, hours, holder }. null removes a key.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"field": {
"type": "string",
"description": "setField: name, publicDescription, descripFor, linkToWebsite, vals, location, currency, restime."
},
"group": {
"enum": [
"products",
"rikmaMissions",
"rikmaResources",
"partners",
"skills",
"roles",
"methods",
"vallues",
"missions",
"resources",
"wishMissions",
"wishResources"
],
"type": "string",
"description": "add: which list."
},
"label": {
"type": "string",
"description": "add / rename."
},
"value": {},
"productKey": {
"type": "string",
"description": "link: the product."
},
"missionKeys": {
"type": "array",
"items": {
"type": "string"
},
"description": "link: missions that make one unit."
},
"resourceKeys": {
"type": "array",
"items": {
"type": "string"
},
"description": "link: resources that make one unit."
}
},
"additionalProperties": false
},
"maxItems": 60,
"minItems": 1
},
"say": {
"type": "string",
"maxLength": 1000,
"description": "Your one-line summary of the change, for the transcript."
},
"sessionId": {
"type": "string"
},
"instruction": {
"type": "string",
"maxLength": 1000,
"description": "The person's words, for the shared transcript."
},
"expectedVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
}Update the shelf stock of a product or of one of its variants. Operational change (§4.6): any rikma member may do it, it applies at once, and prices are never touched. Two modes: `set` counts the shelf ("there are 7"), `add` adds a delivery ("12 came in"), reading the quantity on the server first so a sale that landed meanwhile is not overwritten. Use quant=-1 for unlimited. A product that is sold by variant keeps its stock on the variants (Matanot.quant is not used). Members only. Docs: https://1lev1.com/mcp#setShopStockTool
| Argument | Type | Description |
|---|---|---|
| mode | string | `set` counts, `add` delivers. Default set. |
| value | number | Units: the new count (`set`) or how many came in (`add`). Ignored when unlimited=true. |
| productId* | string | Matanot id (from listRikmaProducts). |
| projectId* | string | Rikma id. |
| unlimited | boolean | Pass true for unlimited stock (-1). |
| variantId | any | Variant id (from listRikmaProductVariants or listRikmaProducts). Required when the product has variants. Pass null/omit for a simple product. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"productId"
],
"properties": {
"mode": {
"enum": [
"set",
"add"
],
"type": "string",
"description": "`set` counts, `add` delivers. Default set."
},
"value": {
"type": "number",
"description": "Units: the new count (`set`) or how many came in (`add`). Ignored when unlimited=true."
},
"productId": {
"type": "string",
"description": "Matanot id (from listRikmaProducts)."
},
"projectId": {
"type": "string",
"description": "Rikma id."
},
"unlimited": {
"type": "boolean",
"description": "Pass true for unlimited stock (-1)."
},
"variantId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Variant id (from listRikmaProductVariants or listRikmaProducts). Required when the product has variants. Pass null/omit for a simple product."
}
},
"additionalProperties": false
}Make a read-only link that shows how the drafted rikma would look on 1lev1 - its products, missions, resources, who brings what and an example of how shares form - for the person to send to their partners (no account needed to view; nothing is created). Valid 30 days; calling again replaces the old link, and revoke:true ends it. Docs: https://1lev1.com/mcp#shareRikmaPreviewTool
| Argument | Type | Description |
|---|---|---|
| revoke | boolean | |
| sessionId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sessionId"
],
"properties": {
"revoke": {
"type": "boolean"
},
"sessionId": {
"type": "string"
}
},
"additionalProperties": false
}Open the person's living list of (a) their PROFILE - skills, roles, ways of working, values, resources they own - seeded from what is on it now, plus what `text` says about them (pass what they told you); or (b) a WISH - pass ratsonId (from listMyWishesTool), or `text` to start a new draft wish from their words. Returns the rows with keys. Then refine with setAssistantItems (your own ops - preferred) or reviseAssistant (their words), and save with applyAssistant. A rikma is not started here: use proposeRikmaBlueprint. Docs: https://1lev1.com/mcp#startAssistantTool
| Argument | Type | Description |
|---|---|---|
| kind* | string | |
| text | string | |
| ratsonId | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"profile",
"wish"
],
"type": "string"
},
"text": {
"type": "string",
"maxLength": 8000
},
"ratsonId": {
"type": "string"
}
},
"additionalProperties": false
}Start a process in a rikma: a named thread with its own conversation, for something that is not yet a mission or a resource - approaching an organisation, preparing a launch, chasing funding. The description becomes the first message, so a half-formed idea can be written in plain words and take shape later: as it becomes concrete, the open missions and resources it needs are created in the normal way and attached with attachToProcess. Members only. Use it when the user wants to record something the rikma is pursuing, not to file your own notes. Docs: https://1lev1.com/mcp#startProcessTool
| Argument | Type | Description |
|---|---|---|
| name* | string | Short name, e.g. "Approach: city community centre". |
| projectId* | string | Rikma (project) id. |
| description | string | The raw text, in the user's own words: what this is, who it involves, what is hoped for. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 2,
"description": "Short name, e.g. \"Approach: city community centre\"."
},
"projectId": {
"type": "string",
"description": "Rikma (project) id."
},
"description": {
"type": "string",
"maxLength": 4000,
"description": "The raw text, in the user's own words: what this is, who it involves, what is hoped for."
}
},
"additionalProperties": false
}Perform actions on user timers (start, stop, pause, resume) Docs: https://1lev1.com/mcp#timerActionTool
| Argument | Type | Description |
|---|---|---|
| action* | string | The action to perform on the timer |
| missionId | string | Specific mission ID (optional, will find active timer if not provided) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"start",
"stop",
"pause",
"resume"
],
"type": "string",
"description": "The action to perform on the timer"
},
"missionId": {
"type": "string",
"description": "Specific mission ID (optional, will find active timer if not provided)"
}
},
"additionalProperties": false
}Undo the last change to the draft list (from here or from the site). Docs: https://1lev1.com/mcp#undoAssistantTool
| Argument | Type | Description |
|---|---|---|
| sessionId* | string | |
| expectedVersion* | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sessionId",
"expectedVersion"
],
"properties": {
"sessionId": {
"type": "string"
},
"expectedVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
},
"additionalProperties": false
}Advance a paid store order to shipped, fulfilled, or cancel it as its holder. Any member may mark shipped/fulfilled (getting the parcel out is the rikma’s work); cancel is holder-only — the member whose till took the money — because it resets their own self-reported sales not yet in a split; sales already in a split are left and the rikma is told to settle the refund. Idempotent (same status twice succeeds quietly); backwards transitions refuse (§3.4). On cancel, pass restock:true to put the items back on the shelf (default: only when the order was not yet shipped). Members only. Docs: https://1lev1.com/mcp#updateRikmaOrderStatusTool
| Argument | Type | Description |
|---|---|---|
| action* | string | shipped → parcel left, fulfilled → delivered/picked up, cancel → refund. |
| reason | string | Cancel reason shown on the order and in sale notes. |
| restock | boolean | On cancel: put items back in stock. Default: only when not yet shipped. |
| orderRef* | string | Order ref (`<rikma>:<externalId>` as POST /orders answered) or orderId. |
| projectId* | string | Rikma id. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"orderRef",
"action"
],
"properties": {
"action": {
"enum": [
"shipped",
"fulfilled",
"cancel"
],
"type": "string",
"description": "shipped → parcel left, fulfilled → delivered/picked up, cancel → refund."
},
"reason": {
"type": "string",
"maxLength": 500,
"description": "Cancel reason shown on the order and in sale notes."
},
"restock": {
"type": "boolean",
"description": "On cancel: put items back in stock. Default: only when not yet shipped."
},
"orderRef": {
"type": "string",
"description": "Order ref (`<rikma>:<externalId>` as POST /orders answered) or orderId."
},
"projectId": {
"type": "string",
"description": "Rikma id."
}
},
"additionalProperties": false
}Update shop-facing fields of a product: hideFromDiscovery (show/hide in the public /gift directory), and `kindOf` for operational edits. More broadly this is the merchant-facing "show/hide" for discovery — what the sales/manage products tab does. Pricing of a rikma product is a term and belongs in editObject with rikma consent (§4.6); this tool says so and returns the edit URL when asked to change price on such a product. For discovery, the change applies at once. Docs: https://1lev1.com/mcp#updateRikmaProductTool
| Argument | Type | Description |
|---|---|---|
| name | string | New display name (for personal products this applies at once; for rikma products it is a term). |
| descrip | string | New description. |
| productId* | string | Matanot id (from listRikmaProducts). |
| projectId* | string | Rikma id (membership check). |
| hideFromDiscovery | boolean | Hide it from /gift directory (true) or show it again (false). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"productId"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"description": "New display name (for personal products this applies at once; for rikma products it is a term)."
},
"descrip": {
"type": "string",
"maxLength": 4000,
"description": "New description."
},
"productId": {
"type": "string",
"description": "Matanot id (from listRikmaProducts)."
},
"projectId": {
"type": "string",
"description": "Rikma id (membership check)."
},
"hideFromDiscovery": {
"type": "boolean",
"description": "Hide it from /gift directory (true) or show it again (false)."
}
},
"additionalProperties": false
}| string |
| When the Partnership expects to earn from sales: already, week, month, threeM, sixM, oneY, twoY, more, or never. `never` is the correct value for a nonprofit / public-benefit initiative - it means "selling is not the goal", not "it will fail". Such a Partnership is funded through its public support page, where donors can cover the work hours. |
| details | string | Detailed description as raw HTML, e.g. `<h2>Title</h2><p>Body</p>`. Allowed tags: h1, h2, h3, p, ul, ol, li, strong, em, u, s, a, br, blockquote. Do NOT HTML-escape it (send `<p>`, not `<p>`). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name"
],
"properties": {
"ont": {
"type": "boolean",
"description": "Whether the partnership is continuous (true) or a one-time event (false)."
},
"res": {
"enum": [
"feh",
"sth",
"nsh",
"sevend"
],
"type": "string",
"description": "Response time ID: feh (48h), sth (72h), nsh (96h), sevend (1 week)."
},
"url": {
"type": "string",
"description": "A link to a website related to the project."
},
"desc": {
"type": "string",
"description": "A short public description (plain text, one or two sentences)."
},
"name": {
"type": "string",
"description": "The name of the new Partnership. Required."
},
"vals": {
"type": "array",
"items": {
"type": "string"
},
"description": "Values and goals of the partnership, as their names. A value may contain commas."
},
"profit": {
"enum": [
"already",
"week",
"month",
"threeM",
"sixM",
"oneY",
"twoY",
"more",
"never"
],
"type": "string",
"description": "When the Partnership expects to earn from sales: already, week, month, threeM, sixM, oneY, twoY, more, or never. `never` is the correct value for a nonprofit / public-benefit initiative - it means \"selling is not the goal\", not \"it will fail\". Such a Partnership is funded through its public support page, where donors can cover the work hours."
},
"details": {
"type": "string",
"description": "Detailed description as raw HTML, e.g. `<h2>Title</h2><p>Body</p>`. Allowed tags: h1, h2, h3, p, ul, ol, li, strong, em, u, s, a, br, blockquote. Do NOT HTML-escape it (send `<p>`, not `<p>`)."
}
},
"additionalProperties": false
}| Where the product is (or isOnline:true via location_mode online). |
| projectId | string | Host it on this rikma (you must be a member). Omit for a personal offer on your home rikma. |
| pricingMode | string | fixed = sold at this price (checkout:true, what the storefront reports), estimated = shown as estimate, quote = price on request. Default fixed. |
| newRikmaName | string | Create a fresh rikma with this name and host the product there. Not combined with projectId. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"price"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Product name — shown in the catalog and on the /gift page."
},
"picId": {
"type": "string",
"description": "Strapi upload id of the cover image."
},
"price": {
"type": "number",
"description": "Fixed price in the rikma currency (or the currency code you pass).",
"exclusiveMinimum": 0
},
"quant": {
"type": "number",
"description": "Available quantity: a number, -1 for unlimited, or omit for 0."
},
"kindOf": {
"enum": [
"total",
"monthly",
"yearly",
"daily",
"unlimited"
],
"type": "string",
"description": "How price×quantity is understood. Default total."
},
"descrip": {
"type": "string",
"maxLength": 4000,
"description": "Long description shown to the buyer."
},
"location": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lng": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"radius": {
"type": "number"
},
"location_hint": {
"type": "string",
"maxLength": 160
},
"location_mode": {
"enum": [
"online",
"physical"
],
"type": "string"
}
},
"description": "Where the product is (or isOnline:true via location_mode online).",
"additionalProperties": false
},
"projectId": {
"type": "string",
"description": "Host it on this rikma (you must be a member). Omit for a personal offer on your home rikma."
},
"pricingMode": {
"enum": [
"fixed",
"estimated",
"quote"
],
"type": "string",
"description": "fixed = sold at this price (checkout:true, what the storefront reports), estimated = shown as estimate, quote = price on request. Default fixed."
},
"newRikmaName": {
"type": "string",
"maxLength": 100,
"description": "Create a fresh rikma with this name and host the product there. Not combined with projectId."
}
},
"additionalProperties": false
}| string |
| ID of the project where the task will be created |
| tafkidims | array | IDs of the roles (tafkidim) that fit the task, when no specific person is chosen; a holder of one of them picks it up. Use getProjectMembersTool to resolve role names to IDs. Mutually exclusive with assignedUserId. |
| description | string | What has to be done and what done looks like, as plain text. Strongly recommended - a title alone is hard to act on. |
| assignedUserId | string | ID of the person (project member) to assign this task to - usually the holder of the mission it belongs to. Use getProjectMembersTool to resolve a name to an ID. Mutually exclusive with tafkidims. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"name"
],
"properties": {
"link": {
"type": "string",
"description": "Optional URL related to the task"
},
"name": {
"type": "string",
"description": "Short name/title of the task"
},
"dateF": {
"type": "string",
"description": "End date (ISO format)"
},
"dateS": {
"type": "string",
"description": "Start date (ISO format)"
},
"hashivut": {
"enum": [
"white",
"green",
"yellow",
"red"
],
"type": "string",
"default": "white",
"description": "Urgency level of the task"
},
"missionId": {
"type": "string",
"description": "ID of the mission in progress (mesimabetahaliches) this task belongs to, from getMemberMissionsTool. Goes with assignedUserId."
},
"projectId": {
"type": "string",
"description": "ID of the project where the task will be created"
},
"tafkidims": {
"type": "array",
"items": {
"type": "string"
},
"description": "IDs of the roles (tafkidim) that fit the task, when no specific person is chosen; a holder of one of them picks it up. Use getProjectMembersTool to resolve role names to IDs. Mutually exclusive with assignedUserId."
},
"description": {
"type": "string",
"description": "What has to be done and what done looks like, as plain text. Strongly recommended - a title alone is hard to act on."
},
"assignedUserId": {
"type": "string",
"description": "ID of the person (project member) to assign this task to - usually the holder of the mission it belongs to. Use getProjectMembersTool to resolve a name to an ID. Mutually exclusive with tafkidims."
}
},
"additionalProperties": false
}| wishText | string |
| aboutText | string |
| blueprint | object |
| countries | array | Country names in English, e.g. ["Israel"]. |
| forSomeoneElse* | boolean | Confirms the rikma is for another person, not the user you are talking to. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"email",
"intent",
"forSomeoneElse"
],
"properties": {
"lang": {
"enum": [
"he",
"en",
"ar",
"ru",
"es"
],
"type": "string"
},
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "The name the person gave you to sign up with."
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "The email the person gave you to sign up with - the confirmation goes there."
},
"intent": {
"enum": [
"join",
"business",
"partnership",
"idea",
"order"
],
"type": "string"
},
"wishText": {
"type": "string",
"maxLength": 4000
},
"aboutText": {
"type": "string",
"maxLength": 8000
},
"blueprint": {
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"required": [
"track",
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"vals": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 8
},
"track": {
"enum": [
"business",
"partnership",
"idea"
],
"type": "string"
},
"restime": {
"enum": [
"feh",
"sth",
"nsh",
"sevend"
],
"type": "string"
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3
},
"location": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lng": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"hint": {
"type": "string",
"maxLength": 200
},
"radius": {
"type": "number",
"maximum": 20000,
"minimum": 0
},
"isOnline": {
"type": "boolean"
}
},
"additionalProperties": false
},
"descripFor": {
"type": "string",
"maxLength": 2000
},
"linkToWebsite": {
"type": "string",
"format": "uri",
"maxLength": 500
},
"publicDescription": {
"type": "string",
"maxLength": 2000
}
},
"additionalProperties": false
},
"missions": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"why": {
"type": "string",
"maxLength": 300
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"hours": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Hours in total, or per month when recurring"
},
"roles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 6
},
"holder": {
"enum": [
"me",
"open",
"partner"
],
"type": "string",
"description": "me = the person importing does it; open = recruit someone; partner = link to a partner by partnerRef and invite them to contribute."
},
"skills": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 10
},
"descrip": {
"type": "string",
"maxLength": 2000
},
"workways": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 6
},
"recurring": {
"type": "boolean",
"description": "Ongoing work, every month"
},
"partnerRef": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Exact `ref` of the partner who will do this mission when holder is \"partner\"."
},
"ratePerHour": {
"type": "number",
"maximum": 100000000,
"minimum": 0
}
},
"additionalProperties": false
},
"default": [],
"maxItems": 30
},
"partners": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"why": {
"type": "string",
"maxLength": 300
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 200,
"description": "Email address to send the rikma invitation to. Ask the person for it; never guess or invent it. If omitted, no email invitation can be sent."
}
},
"additionalProperties": false
},
"default": [],
"maxItems": 10
},
"products": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"why": {
"type": "string",
"maxLength": 300
},
"desc": {
"type": "string",
"maxLength": 2000
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"price": {
"type": "number",
"maximum": 100000000,
"minimum": 0
},
"quant": {
"type": "integer",
"maximum": 1000000,
"minimum": 1
},
"kindOf": {
"enum": [
"total",
"unlimited",
"daily",
"monthly",
"yearly"
],
"type": "string"
},
"recipe": {
"type": "object",
"properties": {
"missions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"maxItems": 15
},
"resources": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"maxItems": 15
}
},
"additionalProperties": false
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3
},
"isOnline": {
"type": "boolean"
},
"keywords": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 15
},
"unlimited": {
"type": "boolean"
},
"categories": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 3
},
"pricingMode": {
"enum": [
"fixed",
"quote"
],
"type": "string"
}
},
"additionalProperties": false
},
"default": [],
"maxItems": 30
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"why": {
"type": "string",
"maxLength": 300
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"price": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Per month / year when kindOf is monthly / yearly, otherwise the whole price"
},
"holder": {
"enum": [
"me",
"open",
"partner"
],
"type": "string",
"description": "me = the person importing does it; open = recruit someone; partner = link to a partner by partnerRef and invite them to contribute."
},
"kindOf": {
"enum": [
"total",
"monthly",
"yearly",
"perUnit",
"rent"
],
"type": "string",
"description": "monthly / yearly = a running cost (rent, subscription); price is then per month / year"
},
"descrip": {
"type": "string",
"maxLength": 2000
},
"quantity": {
"type": "number",
"maximum": 1000000,
"minimum": 0
},
"partnerRef": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Exact `ref` of the partner who will provide this resource when holder is \"partner\"."
}
},
"additionalProperties": false
},
"default": [],
"maxItems": 20
}
},
"additionalProperties": false
},
"countries": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"description": "Country names in English, e.g. [\"Israel\"]."
},
"forSomeoneElse": {
"type": "boolean",
"const": true,
"description": "Confirms the rikma is for another person, not the user you are talking to."
}
},
"additionalProperties": false
}| descrip | string | Mission description as rich HTML - strongly preferred over plain text; a partner decides whether to join from this. Allowed tags: h1, h3, p, ul, ol, li, strong, em, a, br. Recommended shape: a short intro <p>, then a <ul> of concrete deliverables and what done looks like. Do NOT HTML-escape it (send `<p>`, not `<p>`). |
| workways | array | Work-mode names (how the work is done, e.g. "remote", "on-site"), free text. Matched to the catalogue; created when missing. Up to 8. |
| projectId* | string | ID of the project where the mission will be created. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"projectId",
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Mission name (required)."
},
"roles": {
"type": "array",
"items": {
"type": "string"
},
"description": "Role names, free text. Matched to the catalogue; created when missing. Up to 8."
},
"valph": {
"type": "number",
"description": "Value per hour."
},
"nhours": {
"type": "number",
"description": "Estimated hours."
},
"skills": {
"type": "array",
"items": {
"type": "string"
},
"description": "Skill names, free text in the user's language. Matched to the platform catalogue; a skill that does not exist yet is created. Up to 8."
},
"descrip": {
"type": "string",
"description": "Mission description as rich HTML - strongly preferred over plain text; a partner decides whether to join from this. Allowed tags: h1, h3, p, ul, ol, li, strong, em, a, br. Recommended shape: a short intro <p>, then a <ul> of concrete deliverables and what done looks like. Do NOT HTML-escape it (send `<p>`, not `<p>`)."
},
"workways": {
"type": "array",
"items": {
"type": "string"
},
"description": "Work-mode names (how the work is done, e.g. \"remote\", \"on-site\"), free text. Matched to the catalogue; created when missing. Up to 8."
},
"projectId": {
"type": "string",
"description": "ID of the project where the mission will be created."
}
},
"additionalProperties": false
}| email* | string | The email the person gave you to sign up with - the confirmation goes there. |
| intent* | string |
| wishText | string |
| aboutText | string |
| blueprint | object |
| countries | array | Country names in English, e.g. ["Israel"]. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"email",
"intent"
],
"properties": {
"lang": {
"enum": [
"he",
"en",
"ar",
"ru",
"es"
],
"type": "string"
},
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "The name the person gave you to sign up with."
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "The email the person gave you to sign up with - the confirmation goes there."
},
"intent": {
"enum": [
"join",
"business",
"partnership",
"idea",
"order"
],
"type": "string"
},
"wishText": {
"type": "string",
"maxLength": 4000
},
"aboutText": {
"type": "string",
"maxLength": 8000
},
"blueprint": {
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"required": [
"track",
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"vals": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 8
},
"track": {
"enum": [
"business",
"partnership",
"idea"
],
"type": "string"
},
"restime": {
"enum": [
"feh",
"sth",
"nsh",
"sevend"
],
"type": "string"
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3
},
"location": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lng": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"hint": {
"type": "string",
"maxLength": 200
},
"radius": {
"type": "number",
"maximum": 20000,
"minimum": 0
},
"isOnline": {
"type": "boolean"
}
},
"additionalProperties": false
},
"descripFor": {
"type": "string",
"maxLength": 2000
},
"linkToWebsite": {
"type": "string",
"format": "uri",
"maxLength": 500
},
"publicDescription": {
"type": "string",
"maxLength": 2000
}
},
"additionalProperties": false
},
"missions": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"why": {
"type": "string",
"maxLength": 300
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"hours": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Hours in total, or per month when recurring"
},
"roles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 6
},
"holder": {
"enum": [
"me",
"open",
"partner"
],
"type": "string",
"description": "me = the person importing does it; open = recruit someone; partner = link to a partner by partnerRef and invite them to contribute."
},
"skills": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 10
},
"descrip": {
"type": "string",
"maxLength": 2000
},
"workways": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 6
},
"recurring": {
"type": "boolean",
"description": "Ongoing work, every month"
},
"partnerRef": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Exact `ref` of the partner who will do this mission when holder is \"partner\"."
},
"ratePerHour": {
"type": "number",
"maximum": 100000000,
"minimum": 0
}
},
"additionalProperties": false
},
"default": [],
"maxItems": 30
},
"partners": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"why": {
"type": "string",
"maxLength": 300
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 200,
"description": "Email address to send the rikma invitation to. Ask the person for it; never guess or invent it. If omitted, no email invitation can be sent."
}
},
"additionalProperties": false
},
"default": [],
"maxItems": 10
},
"products": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"why": {
"type": "string",
"maxLength": 300
},
"desc": {
"type": "string",
"maxLength": 2000
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"price": {
"type": "number",
"maximum": 100000000,
"minimum": 0
},
"quant": {
"type": "integer",
"maximum": 1000000,
"minimum": 1
},
"kindOf": {
"enum": [
"total",
"unlimited",
"daily",
"monthly",
"yearly"
],
"type": "string"
},
"recipe": {
"type": "object",
"properties": {
"missions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"maxItems": 15
},
"resources": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"maxItems": 15
}
},
"additionalProperties": false
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3
},
"isOnline": {
"type": "boolean"
},
"keywords": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 15
},
"unlimited": {
"type": "boolean"
},
"categories": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 3
},
"pricingMode": {
"enum": [
"fixed",
"quote"
],
"type": "string"
}
},
"additionalProperties": false
},
"default": [],
"maxItems": 30
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"why": {
"type": "string",
"maxLength": 300
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"price": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Per month / year when kindOf is monthly / yearly, otherwise the whole price"
},
"holder": {
"enum": [
"me",
"open",
"partner"
],
"type": "string",
"description": "me = the person importing does it; open = recruit someone; partner = link to a partner by partnerRef and invite them to contribute."
},
"kindOf": {
"enum": [
"total",
"monthly",
"yearly",
"perUnit",
"rent"
],
"type": "string",
"description": "monthly / yearly = a running cost (rent, subscription); price is then per month / year"
},
"descrip": {
"type": "string",
"maxLength": 2000
},
"quantity": {
"type": "number",
"maximum": 1000000,
"minimum": 0
},
"partnerRef": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Exact `ref` of the partner who will provide this resource when holder is \"partner\"."
}
},
"additionalProperties": false
},
"default": [],
"maxItems": 20
}
},
"additionalProperties": false
},
"countries": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"description": "Country names in English, e.g. [\"Israel\"]."
}
},
"additionalProperties": false
}| Argument | Type | Description |
|---|---|---|
| fields* | object | |
| missions | array | |
| partners | array | |
| products | array | |
| projectId | string | An existing rikma of the caller to import into (from findUserProjectsTool). |
| resources | array | |
| sourceText | string | The site text or conversation summary this was drawn from. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"required": [
"track",
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"vals": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 8
},
"track": {
"enum": [
"business",
"partnership",
"idea"
],
"type": "string"
},
"restime": {
"enum": [
"feh",
"sth",
"nsh",
"sevend"
],
"type": "string"
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3
},
"location": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lng": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"hint": {
"type": "string",
"maxLength": 200
},
"radius": {
"type": "number",
"maximum": 20000,
"minimum": 0
},
"isOnline": {
"type": "boolean"
}
},
"additionalProperties": false
},
"descripFor": {
"type": "string",
"maxLength": 2000
},
"linkToWebsite": {
"type": "string",
"format": "uri",
"maxLength": 500
},
"publicDescription": {
"type": "string",
"maxLength": 2000
}
},
"additionalProperties": false
},
"missions": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"why": {
"type": "string",
"maxLength": 300
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"hours": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Hours in total, or per month when recurring"
},
"roles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 6
},
"holder": {
"enum": [
"me",
"open",
"partner"
],
"type": "string",
"description": "me = the person importing does it; open = recruit someone; partner = link to a partner by partnerRef and invite them to contribute."
},
"skills": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 10
},
"descrip": {
"type": "string",
"maxLength": 2000
},
"workways": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 6
},
"recurring": {
"type": "boolean",
"description": "Ongoing work, every month"
},
"partnerRef": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Exact `ref` of the partner who will do this mission when holder is \"partner\"."
},
"ratePerHour": {
"type": "number",
"maximum": 100000000,
"minimum": 0
}
},
"additionalProperties": false
},
"default": [],
"maxItems": 30
},
"partners": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"why": {
"type": "string",
"maxLength": 300
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 200,
"description": "Email address to send the rikma invitation to. Ask the person for it; never guess or invent it. If omitted, no email invitation can be sent."
}
},
"additionalProperties": false
},
"default": [],
"maxItems": 10
},
"products": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"why": {
"type": "string",
"maxLength": 300
},
"desc": {
"type": "string",
"maxLength": 2000
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"price": {
"type": "number",
"maximum": 100000000,
"minimum": 0
},
"quant": {
"type": "integer",
"maximum": 1000000,
"minimum": 1
},
"kindOf": {
"enum": [
"total",
"unlimited",
"daily",
"monthly",
"yearly"
],
"type": "string"
},
"recipe": {
"type": "object",
"properties": {
"missions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"maxItems": 15
},
"resources": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"maxItems": 15
}
},
"additionalProperties": false
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3
},
"isOnline": {
"type": "boolean"
},
"keywords": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 15
},
"unlimited": {
"type": "boolean"
},
"categories": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 3
},
"pricingMode": {
"enum": [
"fixed",
"quote"
],
"type": "string"
}
},
"additionalProperties": false
},
"default": [],
"maxItems": 30
},
"projectId": {
"type": "string",
"description": "An existing rikma of the caller to import into (from findUserProjectsTool)."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"why": {
"type": "string",
"maxLength": 300
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"price": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Per month / year when kindOf is monthly / yearly, otherwise the whole price"
},
"holder": {
"enum": [
"me",
"open",
"partner"
],
"type": "string",
"description": "me = the person importing does it; open = recruit someone; partner = link to a partner by partnerRef and invite them to contribute."
},
"kindOf": {
"enum": [
"total",
"monthly",
"yearly",
"perUnit",
"rent"
],
"type": "string",
"description": "monthly / yearly = a running cost (rent, subscription); price is then per month / year"
},
"descrip": {
"type": "string",
"maxLength": 2000
},
"quantity": {
"type": "number",
"maximum": 1000000,
"minimum": 0
},
"partnerRef": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Exact `ref` of the partner who will provide this resource when holder is \"partner\"."
}
},
"additionalProperties": false
},
"default": [],
"maxItems": 20
},
"sourceText": {
"type": "string",
"maxLength": 20000,
"description": "The site text or conversation summary this was drawn from."
}
},
"additionalProperties": false
}