{"data":{"name":"com.actualgroup/jobs","title":"Actual group – offres d'emploi","description":"Search Actual group job offers in France, find agencies and prepare applications.","version":"1.0.0","websiteUrl":"https://www.actualgroup.com/offres-emploi","repositoryUrl":null,"remotes":[{"url":"https://www.actualgroup.com/mcp","type":"streamable-http"}],"packages":[],"status":"active","isLatest":true,"publishedAt":"2026-10-16T15:13:48.932Z","updatedAt":"2026-10-16T15:13:48.932Z","source":"official-registry","verification":"official","confidence":100,"stars":null,"sources":[{"stars":null,"title":"Actual group – offres d'emploi","source":"official-registry","sourceId":"com.actualgroup/jobs","updatedAt":"2026-10-16T15:13:48.932Z","confidence":100,"websiteUrl":"https://www.actualgroup.com/offres-emploi","description":"Search Actual group job offers in France, find agencies and prepare applications.","verification":"official","repositoryUrl":null}],"toolIndex":{"tools":[{"serverName":"com.actualgroup/jobs","endpointFingerprint":"ea359b926cfad479eac2a45107d25c796f28aeac37c16e183f46de1d2255576b","name":"find_agencies","title":"Find Actual group agencies","description":"Actual group employment agencies (about 780 in France) in a town or a region, with address and specialties. Candidates can visit or call an agency for advice, registration or follow-up on their applications. To recommend the single most relevant agency for a job, use find_best_agency instead.","inputSchema":{"type":"object","properties":{"city":{"description":"Town name, e.g. \"Nantes\".","type":"string"},"region":{"description":"French region name, e.g. \"Pays de la Loire\".","type":"string"},"limit":{"description":"Maximum number of agencies returned. Defaults to 20.","type":"integer","minimum":1,"maximum":50},"context":{"type":"string","description":"Why are you calling this tool? Describe the job seeker's or recruiter's goal in one short sentence. Do not include names, emails or phone numbers."},"llm_model":{"type":"string","description":"The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess."},"conversation_id":{"type":"string","description":"Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request."}},"required":["context","llm_model"],"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"openWorldHint":false},"definitionHash":"9b85e10c225168da0f2a33be11668a16454d696b7d1afc90122ba2c516caea3d","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-02T21:47:54.250Z","metadataTrust":"untrusted"},{"serverName":"com.actualgroup/jobs","endpointFingerprint":"ea359b926cfad479eac2a45107d25c796f28aeac37c16e183f46de1d2255576b","name":"find_best_agency","title":"Find the most relevant Actual group agency","description":"Recommend the Actual group agency, office, training centre or school best suited to a person's need, near a place in France. Covers employment agencies (intérim, CDD, CDI), Actual Talent offices (talent acquisition and assessment, mostly white-collar), Envergure centres (vocational training, skills assessment, career transition) and the group's schools (eSUP, Holberton…, often work-study). Ranks them by open offers for the given job, specialty (construction, logistics, medical, white-collar, school domain…) and distance. Returns address, phone, opening status and why each agency was picked. Pass the returned agency code to search_offers (agencyCode) to list that agency's offers.","inputSchema":{"type":"object","properties":{"location":{"type":"string","minLength":2,"description":"French town or postal code, e.g. \"Le Mans\" or \"72000\"."},"job":{"description":"Job or field the person is looking for or hiring for, e.g. \"électricien\", \"cariste\", \"aide-soignant\".","type":"string"},"purpose":{"description":"find_job: a candidate looking for work (default). hire: a company looking to recruit. assessment: a company wanting candidates or staff assessed (Actual Talent). training: vocational training, skills assessment or career change (Envergure). school: a degree or work-study programme (group schools). insertion: return-to-work support.","type":"string","enum":["find_job","hire","assessment","training","school","insertion"]},"limit":{"description":"Number of agencies to return, 1 to 5. Defaults to 3.","type":"integer","minimum":1,"maximum":5},"context":{"type":"string","description":"Why are you calling this tool? Describe the job seeker's or recruiter's goal in one short sentence. Do not include names, emails or phone numbers."},"llm_model":{"type":"string","description":"The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess."},"conversation_id":{"type":"string","description":"Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request."}},"required":["location","context","llm_model"],"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"openWorldHint":false},"definitionHash":"3fc483cf83c8081090210203ced1d9a034b27b3494a3ef49f2cfc744ab4498e7","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-02T21:47:54.250Z","metadataTrust":"untrusted"},{"serverName":"com.actualgroup/jobs","endpointFingerprint":"ea359b926cfad479eac2a45107d25c796f28aeac37c16e183f46de1d2255576b","name":"get_offer","title":"Get a job offer","description":"Full details of one Actual group job offer: description, required profile, salary, schedule, benefits and recruiting agency. Takes the slug returned by search_offers (also the last segment of the offer URL).","inputSchema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"description":"Offer slug, from search_offers or the offer URL."},"lang":{"description":"Language of the offer text. Defaults to fr.","type":"string","enum":["fr","en"]},"context":{"type":"string","description":"Why are you calling this tool? Describe the job seeker's or recruiter's goal in one short sentence. Do not include names, emails or phone numbers."},"llm_model":{"type":"string","description":"The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess."},"conversation_id":{"type":"string","description":"Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request."}},"required":["slug","context","llm_model"],"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"openWorldHint":false},"definitionHash":"f185dcb463ff3ced00f4a19afe62b302324748a8d3ac16d9f0518e52b2f7f2c9","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-02T21:47:54.250Z","metadataTrust":"untrusted"},{"serverName":"com.actualgroup/jobs","endpointFingerprint":"ea359b926cfad479eac2a45107d25c796f28aeac37c16e183f46de1d2255576b","name":"list_offer_facets","title":"List offer filter values","description":"Exact filter values accepted by search_offers for one dimension (contract type, job family, industry or region), with the number of open offers for each. Optionally scoped by a query and a town.","inputSchema":{"type":"object","properties":{"dimension":{"type":"string","enum":["contractType","family","industry","region"],"description":"Which filter to list."},"q":{"description":"Optional free text to scope the counts.","type":"string"},"town":{"description":"Optional town or postal code to scope the counts.","type":"string"},"context":{"type":"string","description":"Why are you calling this tool? Describe the job seeker's or recruiter's goal in one short sentence. Do not include names, emails or phone numbers."},"llm_model":{"type":"string","description":"The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess."},"conversation_id":{"type":"string","description":"Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request."}},"required":["dimension","context","llm_model"],"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"openWorldHint":false},"definitionHash":"6d26ba2b5d7bca2b6a442dc41aec00c81a25e483f858b7c107e67d2f95399270","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-02T21:47:54.250Z","metadataTrust":"untrusted"},{"serverName":"com.actualgroup/jobs","endpointFingerprint":"ea359b926cfad479eac2a45107d25c796f28aeac37c16e183f46de1d2255576b","name":"search_offers","title":"Search job offers","description":"Search the job offers (temporary work, fixed-term and permanent contracts) published by Actual group in France. Combine a free-text query with a town and filters. Filter values for contractType, family, industry and region must be exact French values: get them from list_offer_facets. Use get_offer with a result's slug for the full offer.","inputSchema":{"type":"object","properties":{"q":{"description":"Free text: job title, skill or keyword, e.g. \"cariste\", \"soudeur TIG\", \"aide-soignant\".","type":"string"},"town":{"description":"French town or postal code to search around, e.g. \"Rennes\" or \"35000\".","type":"string"},"radius":{"description":"Search radius in km around the town. Defaults to 20.","anyOf":[{"type":"number","const":10},{"type":"number","const":20},{"type":"number","const":50}]},"contractType":{"description":"Contract types (exact values from list_offer_facets), e.g. [\"Contrat de travail temporaire\", \"CDI\"].","type":"array","items":{"type":"string"}},"family":{"description":"Job families (exact values from list_offer_facets).","type":"array","items":{"type":"string"}},"industry":{"description":"Industries (exact values from list_offer_facets).","type":"array","items":{"type":"string"}},"region":{"description":"French regions (exact values from list_offer_facets), e.g. [\"Bretagne\"].","type":"array","items":{"type":"string"}},"agencyCode":{"description":"Only offers handled by this agency: the agency code returned by find_best_agency.","type":"string"},"sort":{"description":"Sort order. Defaults to relevance.","type":"string","enum":["relevance","date","distance"]},"page":{"description":"Page number, from 1.","type":"integer","minimum":1,"maximum":50},"pageSize":{"description":"Results per page, 1 to 20. Defaults to 10.","type":"integer","minimum":1,"maximum":20},"lang":{"description":"Language of the offer texts and URLs. Defaults to fr.","type":"string","enum":["fr","en"]},"context":{"type":"string","description":"Why are you calling this tool? Describe the job seeker's or recruiter's goal in one short sentence. Do not include names, emails or phone numbers."},"llm_model":{"type":"string","description":"The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess."},"conversation_id":{"type":"string","description":"Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request."}},"required":["context","llm_model"],"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":true,"openWorldHint":false},"definitionHash":"79c81a76d67eaab7260b6daa5e87e874d7f5b0a6095391f7d38d0d72c8d8d8a0","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-02T21:47:54.250Z","metadataTrust":"untrusted"},{"serverName":"com.actualgroup/jobs","endpointFingerprint":"ea359b926cfad479eac2a45107d25c796f28aeac37c16e183f46de1d2255576b","name":"start_application","title":"Start a job application","description":"Prepare an application to an Actual group offer on behalf of the candidate you are assisting. Returns a personal link, valid 72 hours, that the candidate must open to attach their CV and give consent to the processing of their data; the application is only sent once they submit that page. Only call this when the candidate has asked to apply and given you their name and email. Never submit the page yourself: give the link to the candidate.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"description":"Slug of the offer, from search_offers or get_offer."},"firstName":{"type":"string","minLength":1,"maxLength":100,"description":"Candidate first name."},"lastName":{"type":"string","minLength":1,"maxLength":100,"description":"Candidate last name."},"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,}$","description":"Candidate email address."},"phoneNumber":{"description":"Candidate phone number, optional.","type":"string","maxLength":30},"lang":{"description":"Language of the application page. Defaults to fr.","type":"string","enum":["fr","en"]},"context":{"type":"string","description":"Why are you calling this tool? Describe the job seeker's or recruiter's goal in one short sentence. Do not include names, emails or phone numbers."},"llm_model":{"type":"string","description":"The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess."},"conversation_id":{"type":"string","description":"Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request."}},"required":["slug","firstName","lastName","email","context","llm_model"],"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"46c01bece77e200d3f834c62145d283fa820531fa34d21eb528608a9a4dd16f1","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-11-02T21:47:54.250Z","metadataTrust":"untrusted"}],"endpoints":[{"endpointFingerprint":"ea359b926cfad479eac2a45107d25c796f28aeac37c16e183f46de1d2255576b","protocol":"streamable-http","status":"indexed","toolCount":6,"observedAt":"2026-11-02T21:47:54.250Z"}],"authentication":"unknown"},"connectionConfigurations":{"status":"ready","authentication":"not embedded","clients":{"Claude Desktop":{"mcpServers":{"com.actualgroup/jobs":{"url":"https://www.actualgroup.com/mcp"}}},"Cursor":{"mcpServers":{"com.actualgroup/jobs":{"url":"https://www.actualgroup.com/mcp"}}},"VS Code":{"servers":{"com.actualgroup/jobs":{"type":"http","url":"https://www.actualgroup.com/mcp"}}}}},"resourceType":"mcp-server","callable":true,"runtime":{"callable":true,"protocols":["mcp"]},"interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://www.actualgroup.com/mcp"}],"profile":{"apiVersion":"1","schemaVersion":"1","id":"mcp-server:com.actualgroup%2Fjobs","resourceType":"mcp-server","canonicalUrl":"https://www.agentsjunction.com/api/v1/servers/com.actualgroup%2Fjobs","name":"com.actualgroup/jobs","description":"Search Actual group job offers in France, find agencies and prepare applications.","interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://www.actualgroup.com/mcp"}],"capabilities":[],"identity":{"source":"official-registry","websiteUrl":"https://www.actualgroup.com/offres-emploi","repositoryUrl":null,"version":"1.0.0"},"verification":{"state":"official","confidence":100},"operations":{"resourceType":"mcp-server","name":"com.actualgroup/jobs","status":"online","lastCheckedAt":"2026-11-03T20:16:01.399Z","lastSuccessfulCheck":"2026-11-03T20:16:01.399Z","latencyMs":166,"consecutiveFailures":0,"isStale":false,"checks":{"endpointReachable":true,"protocolValid":true,"agentCardValid":null,"mcpHandshakeValid":true},"lastSeen":null,"lastSuccessfulInteraction":null,"lastHealthCheck":"2026-11-03T20:16:01.399Z","source":{"type":"health-check","url":null},"observedAt":"2026-11-03T20:16:01.399Z"},"security":null,"timestamps":{"createdAt":"2026-10-16T15:13:48.932Z","updatedAt":"2026-10-16T15:13:48.932Z","observedAt":"2026-11-03T20:16:01.399Z"},"compatibility":{"serverVersion":"1.0.0","protocolVersions":[{"protocol":"mcp","version":null}]}}}}