1lev1

Track partnership work, log mission hours, and see what needs your approval on 1lev1.com.

¿Debería usar esto?

Calidad y seguridad

B
Calidad de la descripción
100%
Integridad del esquema
88%
Calidad de los nombres
94%
Riesgo de envenenamiento
0%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (45)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainen findUserProjectsTool
  • MEDIUMTool description contains URL to non-standard domainen getProjectDetailsTool
  • MEDIUMTool description contains URL to non-standard domainen listProjectResourcesTool
  • MEDIUMTool description contains URL to non-standard domainen getProjectStatsTool
  • MEDIUMTool description contains URL to non-standard domainen getProjectMembersTool
  • MEDIUMTool description contains URL to non-standard domainen getMemberMissionsTool
  • MEDIUMTool description contains URL to non-standard domainen getMissionDetailsTool
  • MEDIUMTool description contains URL to non-standard domainen listUserMissionsTool
  • MEDIUMTool description contains URL to non-standard domainen findMissionTool

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~14,182Tokens (definiciones de herramientas)
~2.0 KBTamaño de respuesta típico
Impacto significativo en la atención (11.08% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "1lev1": {
      "url": "https://api.1lev1.com/api/mcp"
    }
  }
}

Puntos de conexión remotos

https://api.1lev1.com/api/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (44)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢findUserProjectsTool(userId, query, limit, offset)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "userId": {
      "description": "User id to list projects for. Omit to use the authenticated caller.",
      "type": "string"
    },
    "query": {
      "description": "Optional search query to filter projects by name (case-insensitive substring).",
      "type": "string"
    },
    "limit": {
      "description": "Page size, default 50.",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "offset": {
      "description": "How many results to skip, default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢getProjectDetailsTool(projectId)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Rikma (project) id, from findUserProjectsTool."
    }
  },
  "required": [
    "projectId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢listProjectResourcesTool(projectId)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Rikma (project) id, from findUserProjectsTool."
    }
  },
  "required": [
    "projectId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢getProjectStatsTool(projectId, days)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Rikma (project) id, from findUserProjectsTool."
    },
    "days": {
      "description": "Window for the \"recent\" numbers, default 30.",
      "type": "integer",
      "minimum": 1,
      "maximum": 365
    }
  },
  "required": [
    "projectId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢getProjectMembersTool(projectId, query)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "ID of the project"
    },
    "query": {
      "description": "Optional text to filter people or roles by name",
      "type": "string"
    }
  },
  "required": [
    "projectId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢getMemberMissionsTool(projectId, userId)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "ID of the project"
    },
    "userId": {
      "type": "string",
      "description": "ID of the member (assignee) whose in-progress missions to list"
    }
  },
  "required": [
    "projectId",
    "userId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢getMissionDetailsTool(missionId)

Get detailed information about a specific mission including tasks, timeline, and current status Docs: https://1lev1.com/mcp#getMissionDetailsTool

Esquema de entrada

{
  "type": "object",
  "properties": {
    "missionId": {
      "type": "string",
      "description": "Mission ID to get details for"
    }
  },
  "required": [
    "missionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢listUserMissionsTool(filter, projectId, projectName, missionName, limit)

List user missions with various filtering options Docs: https://1lev1.com/mcp#listUserMissionsTool

Esquema de entrada

{
  "type": "object",
  "properties": {
    "filter": {
      "default": "all",
      "description": "Filter missions by status",
      "type": "string",
      "enum": [
        "all",
        "active",
        "completed",
        "startable",
        "stoppable",
        "overdue"
      ]
    },
    "projectId": {
      "description": "Filter by specific project ID (numeric)",
      "type": "string"
    },
    "projectName": {
      "description": "Filter by project name",
      "type": "string"
    },
    "missionName": {
      "description": "Search for missions by name (partial match)",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "description": "Maximum number of missions to return",
      "type": "number"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢findMissionTool(missionName)

Find a specific mission for the user by its name. Docs: https://1lev1.com/mcp#findMissionTool

Esquema de entrada

{
  "type": "object",
  "properties": {
    "missionName": {
      "type": "string",
      "description": "The name of the mission to find."
    }
  },
  "required": [
    "missionName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢getActiveTimersTool(includeDetails)

Get all currently active timers for the user Docs: https://1lev1.com/mcp#getActiveTimersTool

Esquema de entrada

{
  "type": "object",
  "properties": {
    "includeDetails": {
      "default": true,
      "description": "Include detailed timer information",
      "type": "boolean"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢getMissionStatsTool(projectId)

Get statistics about user missions including counts by status, time spent, etc. Docs: https://1lev1.com/mcp#getMissionStatsTool

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "description": "Get stats for specific project only",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢searchCatalogTool(query, kinds, limit)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 100,
      "description": "Free text; matched against names, descriptions and rikma names."
    },
    "kinds": {
      "description": "Which directories to search. Default: all three.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "products",
          "missions",
          "resources"
        ]
      }
    },
    "limit": {
      "description": "Maximum rows per kind, default 10.",
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢searchContentTool(query, limit)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 100,
      "description": "Free text; matched against names and descriptions."
    },
    "limit": {
      "description": "Maximum rows per kind, default 10.",
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢listMyWishesTool

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

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢getWishDetailsTool(wishId)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "wishId": {
      "type": "string",
      "description": "Wish (ratson) id, from listMyWishes or a /concierge or /wish URL."
    }
  },
  "required": [
    "wishId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢listMyWishOffersTool

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

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡proposeRikmaBlueprintTool(fields, products, missions, resources, partners, ...)

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 "open"). holder "me" = the person you are talking to does it; "partner" + partnerRef = a partner listed in `partners`. - 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. Show the rows to the person in the conversation, ask about anything you guessed (prices especially), fix what they say with setAssistantItems, then give them reviewUrl: on that page they tick what to create and create it with one click. Nothing exists on the platform until they do - never say it was created. Docs: https://1lev1.com/mcp#proposeRikmaBlueprintTool

Esquema de entrada

{
  "type": "object",
  "properties": {
    "fields": {
      "type": "object",
      "properties": {
        "track": {
          "type": "string",
          "enum": [
            "business",
            "partnership",
            "idea"
          ]
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "publicDescription": {
          "type": "string",
          "maxLength": 2000
        },
        "descripFor": {
          "type": "string",
          "maxLength": 2000
        },
        "linkToWebsite": {
          "type": "string",
          "maxLength": 500,
          "format": "uri"
        },
        "vals": {
          "maxItems": 8,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 60
          }
        },
        "location": {
          "type": "object",
          "properties": {
            "lat": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            },
            "lng": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            },
            "radius": {
              "type": "number",
              "minimum": 0,
              "maximum": 20000
            },
            "isOnline": {
              "type": "boolean"
            },
            "hint": {
              "type": "string",
              "maxLength": 200
            }
          },
          "additionalProperties": false
        },
        "currency": {
          "type": "string",
          "minLength": 3,
          "maxLength": 3
        },
        "restime": {
          "type": "string",
          "enum": [
            "feh",
            "sth",
            "nsh",
            "sevend"
          ]
        }
      },
      "required": [
        "track",
        "name"
      ],
      "additionalProperties": false
    },
    "products": {
      "default": [],
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "ref": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "desc": {
            "type": "string",
            "maxLength": 2000
          },
          "pricingMode": {
            "type": "string",
            "enum": [
              "fixed",
              "quote"
            ]
          },
          "price": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          },
          "kindOf": {
            "type": "string",
            "enum": [
              "total",
              "unlimited",
              "daily",
              "monthly",
              "yearly"
            ]
          },
          "quant": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000000
          },
          "unlimited": {
            "type": "boolean"
          },
          "isOnline": {
            "type": "boolean"
          },
          "keywords": {
            "maxItems": 15,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 60
            }
          },
          "categories": {
            "maxItems": 3,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 40
            }
          },
          "recipe": {
            "type": "object",
            "properties": {
              "missions": {
                "maxItems": 15,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                }
              },
              "resources": {
                "maxItems": 15,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                }
              }
            },
            "additionalProperties": false
          },
          "why": {
            "type": "string",
            "maxLength": 300
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      }
    },
    "missions": {
      "default": [],
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "ref": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "descrip": {
            "type": "string",
            "maxLength": 2000
          },
          "skills": {
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 60
            }
          },
          "roles": {
            "maxItems": 6,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 60
            }
          },
          "workways": {
            "maxItems": 6,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 60
            }
          },
          "hours": {
            "description": "Hours in total, or per month when recurring",
            "type": "number",
            "minimum": 0,
            "maximum": 10000
          },
          "ratePerHour": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "recurring": {
            "description": "Ongoing work, every month",
            "type": "boolean"
          },
          "holder": {
            "type": "string",
            "enum": [
              "me",
              "open",
              "partner"
            ]
          },
          "partnerRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "why": {
            "type": "string",
            "maxLength": 300
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      }
    },
    "resources": {
      "default": [],
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "ref": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "descrip": {
            "type": "string",
            "maxLength": 2000
          },
          "kindOf": {
            "description": "monthly / yearly = a running cost (rent, subscription); price is then per month / year",
            "type": "string",
            "enum": [
              "total",
              "monthly",
              "yearly",
              "perUnit",
              "rent"
            ]
          },
          "price": {
            "description": "Per month / year when kindOf is monthly / yearly, otherwise the whole price",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "quantity": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000
          },
          "holder": {
            "type": "string",
            "enum": [
              "me",
              "open",
              "partner"
            ]
          },
          "partnerRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "why": {
            "type": "string",
            "maxLength": 300
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      }
    },
    "partners": {
      "default": [],
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "ref": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "email": {
            "type": "string",
            "maxLength": 200,
            "format": "email",
            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
          },
          "why": {
            "type": "string",
            "maxLength": 300
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      }
    },
    "projectId": {
      "description": "An existing rikma of the caller to import into (from findUserProjectsTool).",
      "type": "string"
    },
    "sourceText": {
      "description": "The site text or conversation summary this was drawn from.",
      "type": "string",
      "maxLength": 20000
    }
  },
  "required": [
    "fields"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢getAssistantTool(kind, sessionId)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "kind": {
      "description": "Latest session of this kind.",
      "type": "string",
      "enum": [
        "rikma",
        "profile",
        "wish"
      ]
    },
    "sessionId": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🔴setAssistantItemsTool(sessionId, expectedVersion, ops, instruction, say)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "expectedVersion": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "ops": {
      "minItems": 1,
      "maxItems": 60,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "op": {
            "type": "string",
            "enum": [
              "keep",
              "drop",
              "restore",
              "add",
              "rename",
              "setSpec",
              "link",
              "setField"
            ]
          },
          "key": {
            "description": "Row key (keep/drop/restore/rename/setSpec).",
            "type": "string"
          },
          "group": {
            "description": "add: which list.",
            "type": "string",
            "enum": [
              "products",
              "rikmaMissions",
              "rikmaResources",
              "partners",
              "skills",
              "roles",
              "methods",
              "vallues",
              "missions",
              "resources",
              "wishMissions",
              "wishResources"
            ]
          },
          "label": {
            "description": "add / rename.",
            "type": "string"
          },
          "why": {
            "type": "string"
          },
          "spec": {
            "description": "add / setSpec: e.g. { price, kindOf, keywords, categories, hours, holder }. null removes a key.",
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          },
          "productKey": {
            "description": "link: the product.",
            "type": "string"
          },
          "missionKeys": {
            "description": "link: missions that make one unit.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "resourceKeys": {
            "description": "link: resources that make one unit.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "field": {
            "description": "setField: name, publicDescription, descripFor, linkToWebsite, vals, location, currency, restime.",
            "type": "string"
          },
          "value": {}
        },
        "required": [
          "op"
        ],
        "additionalProperties": false
      }
    },
    "instruction": {
      "description": "The person's words, for the shared transcript.",
      "type": "string",
      "maxLength": 1000
    },
    "say": {
      "description": "Your one-line summary of the change, for the transcript.",
      "type": "string",
      "maxLength": 1000
    }
  },
  "required": [
    "sessionId",
    "expectedVersion",
    "ops"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡undoAssistantTool(sessionId, expectedVersion)

Undo the last change to the draft list (from here or from the site). Docs: https://1lev1.com/mcp#undoAssistantTool

Esquema de entrada

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "expectedVersion": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "sessionId",
    "expectedVersion"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡shareRikmaPreviewTool(sessionId, revoke)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "revoke": {
      "type": "boolean"
    }
  },
  "required": [
    "sessionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡startAssistantTool(kind, text, ratsonId)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "profile",
        "wish"
      ]
    },
    "text": {
      "type": "string",
      "maxLength": 8000
    },
    "ratsonId": {
      "type": "string"
    }
  },
  "required": [
    "kind"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🔴reviseAssistantTool(sessionId, expectedVersion, instruction)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "expectedVersion": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "instruction": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "required": [
    "sessionId",
    "expectedVersion",
    "instruction"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🔴applyAssistantTool(sessionId, expectedVersion)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "expectedVersion": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "sessionId",
    "expectedVersion"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
⚪dismissOfferTool(openMissionId)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "openMissionId": {
      "type": "string"
    }
  },
  "required": [
    "openMissionId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢listMyConversationsTool(projectId, limit)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "description": "Only conversations of this rikma.",
      "type": "string"
    },
    "limit": {
      "description": "Maximum rows, default 25.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢readConversationTool(forumId, limit)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "forumId": {
      "type": "string",
      "description": "Forum id, from listMyConversations."
    },
    "limit": {
      "description": "How many of the most recent messages, default 30.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "forumId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡postConversationMessageTool(forumId, message)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "forumId": {
      "type": "string",
      "description": "Forum id, from listMyConversations."
    },
    "message": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000,
      "description": "The message, in the user's own words and language. Plain text."
    }
  },
  "required": [
    "forumId",
    "message"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢openRikmaConversationTool(projectId)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Rikma (project) id."
    }
  },
  "required": [
    "projectId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢getSitePagesTool

Get a structured list of available pages on the 1lev1.com site, useful for navigation. Docs: https://1lev1.com/mcp#getSitePagesTool

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢listRikmaProcessesTool(projectId)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Rikma (project) id."
    }
  },
  "required": [
    "projectId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢navigateToPageTool(url, pageName, idPr)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The URL path to navigate to."
    },
    "pageName": {
      "type": "string",
      "description": "A descriptive name for the page being navigated to."
    },
    "idPr": {
      "description": "The ID of the project to navigate to, if applicable.",
      "type": "string"
    }
  },
  "required": [
    "url",
    "pageName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢createProjectTool(name, desc, details, url, vals, ...)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the new Partnership. Required."
    },
    "desc": {
      "description": "A short public description (plain text, one or two sentences).",
      "type": "string"
    },
    "details": {
      "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 `&lt;p&gt;`).",
      "type": "string"
    },
    "url": {
      "description": "A link to a website related to the project.",
      "type": "string"
    },
    "vals": {
      "description": "Values and goals of the partnership, as their names. A value may contain commas.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "res": {
      "description": "Response time ID: feh (48h), sth (72h), nsh (96h), sevend (1 week).",
      "type": "string",
      "enum": [
        "feh",
        "sth",
        "nsh",
        "sevend"
      ]
    },
    "profit": {
      "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.",
      "type": "string",
      "enum": [
        "already",
        "week",
        "month",
        "threeM",
        "sixM",
        "oneY",
        "twoY",
        "more",
        "never"
      ]
    },
    "ont": {
      "description": "Whether the partnership is continuous (true) or a one-time event (false).",
      "type": "boolean"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢prepareMissionTool(projectId, name, descrip, skills, roles, ...)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "ID of the project where the mission will be created."
    },
    "name": {
      "type": "string",
      "description": "Mission name (required)."
    },
    "descrip": {
      "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 `&lt;p&gt;`).",
      "type": "string"
    },
    "skills": {
      "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.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "roles": {
      "description": "Role names, free text. Matched to the catalogue; created when missing. Up to 8.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "workways": {
      "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.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "nhours": {
      "description": "Estimated hours.",
      "type": "number"
    },
    "valph": {
      "description": "Value per hour.",
      "type": "number"
    }
  },
  "required": [
    "projectId",
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
⚪planProjectWorkTool(projectId, text, title)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "ID of the project to plan for."
    },
    "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": {
      "description": "Optional title for the board; otherwise one is suggested.",
      "type": "string"
    }
  },
  "required": [
    "projectId",
    "text"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡createPlanBoardTool(projectId, title, descrip, items)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "ID of the project to plan for."
    },
    "title": {
      "type": "string",
      "description": "Board title - the direction these rows advance."
    },
    "descrip": {
      "description": "One or two plain-text sentences on what this board is for.",
      "type": "string"
    },
    "items": {
      "minItems": 1,
      "maxItems": 40,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "mission",
              "act",
              "resource",
              "product",
              "note"
            ],
            "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."
          },
          "name": {
            "type": "string",
            "description": "Short title."
          },
          "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."
          },
          "imp": {
            "description": "must = the direction fails without it. Default nice.",
            "type": "string",
            "enum": [
              "must",
              "nice"
            ]
          },
          "rationale": {
            "description": "One sentence on why this row, shown to the members.",
            "type": "string"
          },
          "nhours": {
            "description": "mission only: estimated hours.",
            "type": "number"
          },
          "valph": {
            "description": "mission only: value per hour.",
            "type": "number"
          },
          "skills": {
            "description": "mission only: skill names, free text. Matched to the platform catalogue; missing ones are created.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "roles": {
            "description": "mission only: role names, free text, matched or created like skills.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "workways": {
            "description": "mission only: work-mode names (e.g. \"remote\"), free text, matched or created like skills.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "assigneeKind": {
            "description": "act only: whether the chore is for a person or a role.",
            "type": "string",
            "enum": [
              "person",
              "role"
            ]
          },
          "assigneeName": {
            "description": "act only: a member username or role name, as getProjectMembersTool returns it.",
            "type": "string"
          },
          "missionName": {
            "description": "act only: the in-progress mission the chore belongs to (getMemberMissionsTool).",
            "type": "string"
          },
          "kindOf": {
            "description": "resource / product only.",
            "type": "string",
            "enum": [
              "money",
              "equipment",
              "space",
              "knowledge",
              "other"
            ]
          },
          "price": {
            "description": "resource / product only.",
            "type": "number"
          },
          "quantity": {
            "description": "resource / product only.",
            "type": "number"
          }
        },
        "required": [
          "type",
          "name",
          "descrip"
        ],
        "additionalProperties": false
      },
      "description": "The rows, in the order the user should see them. 1 to 40."
    }
  },
  "required": [
    "projectId",
    "title",
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
⚪scanProjectDirectionsTool(projectId)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "ID of the project to scan."
    }
  },
  "required": [
    "projectId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
⚪timerActionTool(action, missionId)

Perform actions on user timers (start, stop, pause, resume) Docs: https://1lev1.com/mcp#timerActionTool

Esquema de entrada

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "start",
        "stop",
        "pause",
        "resume"
      ],
      "description": "The action to perform on the timer"
    },
    "missionId": {
      "description": "Specific mission ID (optional, will find active timer if not provided)",
      "type": "string"
    }
  },
  "required": [
    "action"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🔴proposeProjectLinkTool(projectId, kind, url)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Rikma (project) id."
    },
    "kind": {
      "type": "string",
      "enum": [
        "website",
        "github",
        "drive",
        "discord",
        "facebook",
        "x",
        "whatsapp"
      ],
      "description": "Which link to set."
    },
    "url": {
      "type": "string",
      "description": "The URL. Pass an empty string to clear the link."
    }
  },
  "required": [
    "projectId",
    "kind",
    "url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
⚪startProcessTool(projectId, name, description)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Rikma (project) id."
    },
    "name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120,
      "description": "Short name, e.g. \"Approach: city community centre\"."
    },
    "description": {
      "description": "The raw text, in the user's own words: what this is, who it involves, what is hoped for.",
      "type": "string",
      "maxLength": 4000
    }
  },
  "required": [
    "projectId",
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡attachToProcessTool(projectId, processId, entityType, entityId, name)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Rikma (project) id."
    },
    "processId": {
      "type": "string",
      "description": "Process id, from listRikmaProcesses or startProcess."
    },
    "entityType": {
      "type": "string",
      "enum": [
        "openMission",
        "openMashaabim",
        "mesimabetahalich",
        "maap",
        "pendm",
        "pmash"
      ],
      "description": "What kind of object is being attached."
    },
    "entityId": {
      "type": "string",
      "description": "Id of that object."
    },
    "name": {
      "description": "Its name, for the process timeline.",
      "type": "string",
      "maxLength": 200
    }
  },
  "required": [
    "projectId",
    "processId",
    "entityType",
    "entityId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡createTaskTool(projectId, name, description, link, assignedUserId, ...)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "ID of the project where the task will be created"
    },
    "name": {
      "type": "string",
      "description": "Short name/title of the task"
    },
    "description": {
      "description": "What has to be done and what done looks like, as plain text. Strongly recommended - a title alone is hard to act on.",
      "type": "string"
    },
    "link": {
      "description": "Optional URL related to the task",
      "type": "string"
    },
    "assignedUserId": {
      "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.",
      "type": "string"
    },
    "tafkidims": {
      "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.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "missionId": {
      "description": "ID of the mission in progress (mesimabetahaliches) this task belongs to, from getMemberMissionsTool. Goes with assignedUserId.",
      "type": "string"
    },
    "hashivut": {
      "default": "white",
      "description": "Urgency level of the task",
      "type": "string",
      "enum": [
        "white",
        "green",
        "yellow",
        "red"
      ]
    },
    "dateS": {
      "description": "Start date (ISO format)",
      "type": "string"
    },
    "dateF": {
      "description": "End date (ISO format)",
      "type": "string"
    }
  },
  "required": [
    "projectId",
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢getPlatformInfo

Get general information about the 1lev1 platform, its goals, and features. Docs: https://1lev1.com/mcp#getPlatformInfo

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟡prepareSignup(name, email, countries, lang, intent, ...)

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 also get a previewUrl showing how it would look; "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. Give them signupUrl (valid 24h). After they confirm their email they land straight in what you prepared. Docs: https://1lev1.com/mcp#prepareSignup

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "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."
    },
    "countries": {
      "description": "Country names in English, e.g. [\"Israel\"].",
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "lang": {
      "type": "string",
      "enum": [
        "he",
        "en",
        "ar",
        "ru",
        "es"
      ]
    },
    "intent": {
      "type": "string",
      "enum": [
        "join",
        "business",
        "partnership",
        "idea",
        "order"
      ]
    },
    "aboutText": {
      "type": "string",
      "maxLength": 8000
    },
    "wishText": {
      "type": "string",
      "maxLength": 4000
    },
    "blueprint": {
      "type": "object",
      "properties": {
        "fields": {
          "type": "object",
          "properties": {
            "track": {
              "type": "string",
              "enum": [
                "business",
                "partnership",
                "idea"
              ]
            },
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 120
            },
            "publicDescription": {
              "type": "string",
              "maxLength": 2000
            },
            "descripFor": {
              "type": "string",
              "maxLength": 2000
            },
            "linkToWebsite": {
              "type": "string",
              "maxLength": 500,
              "format": "uri"
            },
            "vals": {
              "maxItems": 8,
              "type": "array",
              "items": {
                "type": "string",
                "maxLength": 60
              }
            },
            "location": {
              "type": "object",
              "properties": {
                "lat": {
                  "type": "number",
                  "minimum": -90,
                  "maximum": 90
                },
                "lng": {
                  "type": "number",
                  "minimum": -180,
                  "maximum": 180
                },
                "radius": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 20000
                },
                "isOnline": {
                  "type": "boolean"
                },
                "hint": {
                  "type": "string",
                  "maxLength": 200
                }
              },
              "additionalProperties": false
            },
            "currency": {
              "type": "string",
              "minLength": 3,
              "maxLength": 3
            },
            "restime": {
              "type": "string",
              "enum": [
                "feh",
                "sth",
                "nsh",
                "sevend"
              ]
            }
          },
          "required": [
            "track",
            "name"
          ],
          "additionalProperties": false
        },
        "products": {
          "default": [],
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "ref": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "desc": {
                "type": "string",
                "maxLength": 2000
              },
              "pricingMode": {
                "type": "string",
                "enum": [
                  "fixed",
                  "quote"
                ]
              },
              "price": {
                "type": "number",
                "minimum": 0,
                "maximum": 100000000
              },
              "currency": {
                "type": "string",
                "minLength": 3,
                "maxLength": 3
              },
              "kindOf": {
                "type": "string",
                "enum": [
                  "total",
                  "unlimited",
                  "daily",
                  "monthly",
                  "yearly"
                ]
              },
              "quant": {
                "type": "integer",
                "minimum": 1,
                "maximum": 1000000
              },
              "unlimited": {
                "type": "boolean"
              },
              "isOnline": {
                "type": "boolean"
              },
              "keywords": {
                "maxItems": 15,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 60
                }
              },
              "categories": {
                "maxItems": 3,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 40
                }
              },
              "recipe": {
                "type": "object",
                "properties": {
                  "missions": {
                    "maxItems": 15,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    }
                  },
                  "resources": {
                    "maxItems": 15,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    }
                  }
                },
                "additionalProperties": false
              },
              "why": {
                "type": "string",
                "maxLength": 300
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          }
        },
        "missions": {
          "default": [],
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "ref": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "descrip": {
                "type": "string",
                "maxLength": 2000
              },
              "skills": {
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 60
                }
              },
              "roles": {
                "maxItems": 6,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 60
                }
              },
              "workways": {
                "maxItems": 6,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 60
                }
              },
              "hours": {
                "description": "Hours in total, or per month when recurring",
                "type": "number",
                "minimum": 0,
                "maximum": 10000
              },
              "ratePerHour": {
                "type": "number",
                "minimum": 0,
                "maximum": 100000000
              },
              "recurring": {
                "description": "Ongoing work, every month",
                "type": "boolean"
              },
              "holder": {
                "type": "string",
                "enum": [
                  "me",
                  "open",
                  "partner"
                ]
              },
              "partnerRef": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40
              },
              "why": {
                "type": "string",
                "maxLength": 300
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          }
        },
        "resources": {
          "default": [],
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "ref": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "descrip": {
                "type": "string",
                "maxLength": 2000
              },
              "kindOf": {
                "description": "monthly / yearly = a running cost (rent, subscription); price is then per month / year",
                "type": "string",
                "enum": [
                  "total",
                  "monthly",
                  "yearly",
                  "perUnit",
                  "rent"
                ]
              },
              "price": {
                "description": "Per month / year when kindOf is monthly / yearly, otherwise the whole price",
                "type": "number",
                "minimum": 0,
                "maximum": 100000000
              },
              "quantity": {
                "type": "number",
                "minimum": 0,
                "maximum": 1000000
              },
              "holder": {
                "type": "string",
                "enum": [
                  "me",
                  "open",
                  "partner"
                ]
              },
              "partnerRef": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40
              },
              "why": {
                "type": "string",
                "maxLength": 300
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          }
        },
        "partners": {
          "default": [],
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "ref": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "email": {
                "type": "string",
                "maxLength": 200,
                "format": "email",
                "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
              },
              "why": {
                "type": "string",
                "maxLength": 300
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "fields"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "name",
    "email",
    "intent"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada44 herramientas
requiere autenticaciónversión no registrada—
requiere autenticaciónversión no registrada—