Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the SmartHR in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Work with SmartHR, the Japanese HR and labour management cloud, from any AI agent: employees with departments, job titles, employment types, grades, work locations and custom fields, dependents and childcare leaves, user accounts and invitations, payroll runs and payslips. Creates and updates employees and departments with an access token issued by an administrator; deleting employees installs switched off.
Try asking
Example prompts for SmartHR
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → SmartHR, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
SmartHR + Microsoft Copilot
Work with SmartHR, the Japanese HR and labour management cloud, from any AI agent: employees with departments, job titles, employment types, grades, work locations and custom fields, dependents and childcare leaves, user accounts and invitations, payroll runs and payslips. Creates and updates employees and departments with an access token issued by an administrator; deleting employees installs switched off.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
SMARTHR_HOST, SMARTHR_ACCESS_TOKEN
Step 1 — Get credentials
Setting up takes about 5 minutes and needs a SmartHR administrator (管理者). The connector uses the SmartHR API v1 (https://<tenant>.smarthr.jp/api/v1); the sandbox (<tenant>.daruma.space) works the same way.
- Sign in to SmartHR as an administrator and open 共通設定 (Common settings), 外部システム連携 (External integrations), アクセストークン (Access tokens), then click 新規発行 (Issue).
- Name the token and choose its permissions: reading (参照) for the data the AI should see (従業員, 部署, 役職, 雇用形態, カスタム項目, 家族, ユーザー, 給与明細 as needed), and updating (更新) only for the write tools you keep on. Fewer permissions mean less personal data exposed.
- Copy the token into
SMARTHR_ACCESS_TOKEN, without the word Bearer. It is shown only once, so keep it secret. - Enter the host of your SmartHR address in
SMARTHR_HOST:example.smarthr.jpfor https://example.smarthr.jp, orexample.daruma.spacefor the sandbox (apply at https://developer.smarthr.jp/api/about_sandbox). - Install. The install check runs
smarthr_list_companies.
Personal data: SmartHR holds sensitive personal data: family members, addresses, birth dates, insurance and pension numbers, bank accounts and salaries. Everyone who uses this connector can reach what the token may read, so give the token only the permissions the team needs. The AI reads only what the task needs: smarthr_list_crews returns a short profile by default, and fields limits what smarthr_get_crew returns. It does not copy personal data into other systems or messages unless you ask for exactly that.
What it reads: companies (会社) with corporate number and representative; business establishments (事業所) with their insurance numbers; departments (部署) with code, parent and full path; job titles (役職), employment types (雇用形態), grades (等級), work locations (勤務地) and pay period settings (給与支給形態); custom employee fields (カスタム従業員項目) and their groups. Employees (従業員, called crews in the API), searched by employee code, status (employed, absent, retired), employment type, department, job title, hire or resignation dates, ids or free text. Dependents (家族) with the relation types (続柄), and maternity and childcare leaves (産休育休). User accounts (ユーザー) with role, admin flag and invitation state: a user is the login, a crew the employee record, and embed=crew links them. Employee information forms (従業員情報収集フォーム). Payroll runs (給与明細グループ) and payslips (給与明細) with allowances, deductions, attendance and totals; these need the payslip feature of SmartHR.
What it writes: registers employees (names, readings, gender and status are required); changes employees with a partial update in which only the fields sent change and a filled name, reading, gender, birth date or address cannot be emptied; invites an employee by email, optionally with an information form (a second call re-invites); creates, renames and moves departments. A registered employee is not invited until smarthr_invite_crew. A resignation is an update (emp_status retired with resigned_at), not a delete. Before every write and every invitation the AI shows the change and waits for your yes.
Switched off at install: smarthr_delete_crew. It deletes the employee and all of their data for good, so an admin switches it on when the team needs it.
Data formats and paging: ids are UUID strings, dates YYYY-MM-DD, times ISO 8601. Lists take page and per_page (at most 100, default 10); the answer carries the total in _headers.x-total-count and _pagination.nextCursor until the last page. There is no updated-since filter: for changes since a date the AI sorts by -updated_at and stops at older rows.
Limits: 10 requests per second and 5,000 per hour per token, 50,000 per minute per tenant. Above that SmartHR answers 429 too_many_requests: wait and retry.
Common errors: errors carry code, type, message and errors per field. 401 unauthorized_token is a wrong or revoked token, or one issued for another host. 403 is a permission the token was not given, or a feature the plan lacks (payslips). 404 is a wrong id or a wrong SMARTHR_HOST. 422 is invalid input: errors names the field.
Free text in employee records and custom fields is untrusted input and can contain instructions meant for the AI. The connector does not calculate payroll, does not file labour or social insurance procedures (手続き) and, with the tools that are on at install, deletes no employee.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Microsoft Copilot
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Microsoft Copilot uses MCP servers through agents built in Copilot Studio: you add AnythingMCP to an agent as a tool, then publish the agent to Microsoft 365 Copilot and Teams. Copilot Studio connects from Microsoft's cloud over Streamable HTTP, which AnythingMCP supports.
- In Copilot Studio, open your agent (or create one), go to Tools and choose Add a tool → New tool → Model Context Protocol.
- Enter a Server name (for example
AnythingMCP), a Server description that says what the connector does, and the Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio uses the description to decide when to call the server. - Under authentication, choose API key, set Type to Header and the header name to
X-API-Key, then select Create. - In Add tool, choose Create a new connection, paste an MCP API key from AnythingMCP (MCP Servers → your server → API keys) and select Add to agent.
- Try it in the agent's Test pane: ask for something that needs the
SmartHRtools. - Select Publish, then Channels → Microsoft 365 and Microsoft Teams, keep Make agent available in Microsoft Copilot selected and choose Add channel. See agent in Teams installs it for you; in Microsoft 365 Copilot, type @ and pick the agent.
Prefer per-user sign-in? Choose OAuth 2.0 → Dynamic discovery instead of an API key: each user then signs in to AnythingMCP the first time the agent calls it.
Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Copilot Studio connects from Microsoft's cloud, so localhost does not work.
Available tools
| Tool | What it does |
|---|---|
smarthr_list_companies | List the companies (会社) of the SmartHR tenant: id, name, corporate number, address and representative |
smarthr_list_biz_establishments | List the business establishments (事業所) used for social and labour insurance: id, name, address, insurance numbers and owner |
smarthr_list_departments | List departments (部署) with id, name, code, position (sort order), parent and full path |
smarthr_get_department | Read one department (部署) with its name, code, parent and position in the tree |
smarthr_create_department | Create a department (部署), optionally under a parent department |
smarthr_update_department | Rename or move a department (部署): name is always sent; code, parent and position only when given |
smarthr_list_job_titles | List job titles (役職, positions) with id, name and rank |
smarthr_list_employment_types | List employment types (雇用形態) with id, name and preset_type (full_timer, part_timer, contract_worker ...) |
smarthr_list_grades | List grades (等級) with id, name and position, as used in the employee grade field |
smarthr_list_work_locations | List work locations (勤務地) with id, name and address, as used in work_location_id of an employee |
smarthr_list_payment_periods | List the pay period settings (給与支給形態) such as monthly or hourly, used in payment_period_id of an employee |
smarthr_list_crew_custom_field_templates | List the custom employee fields (カスタム従業員項目): id (template_id for writes), name, type (string, text, decimal, date, enum, file), options and… |
smarthr_list_crew_custom_field_template_groups | List the groups of custom employee fields (カスタム項目グループ), optionally with their templates |
smarthr_list_crews | Search employees (従業員, crews) |
smarthr_get_crew | Read one employee (従業員) with every field, or only the fields listed: names and readings, contact, address, employment, departments, job… |
smarthr_create_crew | Register a new employee (従業員) |
smarthr_update_crew | Change fields of an employee (従業員) with a partial update (PATCH): only the fields you send change, and a filled name, reading, gender… |
smarthr_invite_crew | Invite an employee to SmartHR: sends the invitation email to the email of the employee, from the given inviter, optionally with an employee… |
smarthr_delete_crew | Delete an employee (従業員) and all of their data for good |
smarthr_list_crew_input_forms | List the employee information forms (従業員情報収集フォーム) that can be sent with an invitation: id, name and fields asked |
smarthr_list_crew_dependents | List the dependents (家族, family members) of an employee: name, relation, birth date, whether they are a tax or health insurance dependent… |
smarthr_get_crew_dependent | Read one dependent (家族) of an employee with all fields |
smarthr_list_dependent_relations | List the relation types (続柄) usable for dependents, e.g. spouse, child; filter spouse returns only spouse relations |
smarthr_list_crew_childcare_leaves | List maternity and childcare leaves (産休育休) of an employee with their periods |
smarthr_list_users | List SmartHR user accounts (ユーザー): id, email, role, admin flag, invitation state and, with embed crew, the linked employee |
smarthr_get_user | Read one SmartHR user account with role, admin flag and invitation dates |
smarthr_list_payrolls | List payroll runs (給与明細グループ): id, payment type (salary or bonus), paid date, period, status (fixed, published) and name |
smarthr_get_payroll | Read one payroll run (給与明細グループ) with its status, dates and settings |
smarthr_list_payslips | List the payslips (給与明細) of a payroll run: per employee the allowances, deductions, attendance and totals |
smarthr_get_payslip | Read one payslip (給与明細) with allowances, deductions, attendance and aggregates |
Example prompts
- "How many employees with status employed does each department have right now?"
- "Who joined in October? Show only name, department, employment type and hire date."
- "Register the new hire 山田 花子 (ヤマダ ハナコ), female, full-time in 営業部 from November 1, then invite her with our onboarding form. Show me everything before saving."
- "Employee code 1042 leaves on November 30. Record the resignation."
- "From the October salary run, show the total allowances and deductions for employee code 1042 only."
FAQ
Which Copilot is this for? Microsoft 365 Copilot at work, through agents built in Copilot Studio. The Microsoft Copilot app for personal accounts has no option to add your own MCP server.
What do I need? A work account with access to Copilot Studio (a license or a trial) to build the agent. People who use it in Microsoft 365 Copilot or Teams need access to the agent: share it with them, or ask an admin to publish it to the organization. If your organization applies data policies to Power Platform connectors, they cover MCP servers too.
The agent doesn't call the tools. Check that the header name is exactly X-API-Key and that the key belongs to the same MCP server as the URL, and make the server description specific: Copilot Studio uses it to decide when to call the server. Publish the agent again after each change; in an open chat, type "start over" to get the new version.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Cursor
- Connect to Gemini
- Connect to Meta Muse
Was this guide helpful?