DingTalk MCP for AI. Automate approvals, track attendance, and map departments.
Works with every AI agent you already use
…and any MCP-compatible client








Connect to your AI in seconds.
DingTalk MCP connects your agent directly into Alibaba’s B2B office platform. You gain instant access to core corporate functions—from mapping complex organizational charts and tracking who's where, to managing attendance records and automating approval requests.
Manage user profiles, send rich notifications, and process leave or reimbursement workflows all without opening the DingTalk app. It gives your agent a real set of tools for enterprise operations.
What your AI can do
Create approval process
Starts a new workflow instance for things like leave, reimbursement, or purchases by defining the required fields and process type.
Get approval instance
Retrieves the current status of an approval request, showing who reviewed it and what decisions were made.
Get attendance records
Pulls timestamps and checkout types to show employee attendance data for specific date ranges.
List and explore departments and sub-departments to understand the company's full reporting hierarchy.
Search for, retrieve details on, or list profiles of specific employees using their IDs.
Pull employee check-in/check-out records to verify timesheets, track late arrivals, or monitor overall attendance patterns.
Initiate new approval workflows for things like leave requests or purchases, and check the current status of any running process.
Send formatted announcements, alerts, or detailed reports to multiple team members directly through DingTalk's messaging feed.
Ask an AI about this
Waiting for input…
DingTalk: 10 Enterprise Tools for Operations
These tools let you automate corporate functions like managing user profiles, running attendance reports, or starting formal approval workflows through conversation.
Make your AI actually useful.
Add this MCP to Claude, Cursor, or Windsurf and your AI stops guessing. It gets real tools to look things up, take action, and handle the stuff you keep doing by hand.
Start using DingTalk on VinkiusCreate Approval Process
Starts a new workflow instance for things like leave, reimbursement, or purchases by defining the required fields and process type.
Get Approval Instance
Retrieves the current status of an approval request, showing who reviewed it and...
Get Attendance Records
Pulls timestamps and checkout types to show employee attendance data for specific...
Get Department Info
Gets detailed information about a single department, useful for understanding its...
Get User Info
Looks up specific employee details using their unique user ID.
List All Departments
Provides a complete list of every top-level department in the entire company structure.
List Sub Departments
Lists all smaller teams that fall under a specific parent department.
List Users By Department
Retrieves the full list of users and their basic profile info within a designated...
Send Markdown Message
Sends highly formatted, structured text reports or alerts with titles and links to...
Send Work Notification
Sends a direct work notification message containing basic text or markdown details...
Security and governance baked right in.
Pick your AI client below to get set up. Just create a Vinkius account, subscribe, and you're instantly up and running. We handle the entire backend infrastructure, delivering out-of-the-box support for HTTPS Streamable, SSE, and OAuth2—zero messy routing required.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with DingTalk, then connect any of our 5,100+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 5,100+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by DingTalk. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Works with Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This connection provides 10 powerful capabilities that interface natively with Claude, ChatGPT, Cursor, and other compatible AI platforms. No middleware. No custom integration required.
Tracking who was where and when used to take hours of cross-referencing.
Today, tracking attendance means pulling reports from the physical clock system, then exporting that data into a separate HR dashboard. You have to manually compare those timesheets against project schedules in a third system just to flag discrepancies or calculate PTO usage. It's clicking through tabs and copy-pasting dates until your eyes blur.
With this MCP, you ask your agent directly: 'Who was late last week?' The agent immediately uses `get_attendance_records` and returns the precise list of names and times right in the chat window. You get a clean, actionable report instantly.
Using DingTalk for Workflows and Approvals
You currently have to send an email request for time off, wait for a manager to manually review it in another system, and then follow up via chat to see if the approval went through. It's slow, fragmented, and requires three different systems just to confirm one status.
Now, you can use `create_approval_process` to kick off the request directly from your conversation. You don't need to leave the chat; your agent tracks the whole thing for you by querying the status with `get_approval_instance`. It works.
What your AI can actually do with this
DingTalk is Alibaba’s main platform for corporate communication and collaboration. Connecting it through an MCP means you can tell your AI client to perform complex office tasks using natural conversation, instead of needing to log into multiple dashboards. Your agent can pull user lists by department, map the company's reporting structure, or check if a leave request passed approval—all in one go.
You don't just get data; you trigger actions. For example, your agent handles checking timesheets and flagging late arrivals based on recorded attendance. Whether you’re an HR manager needing to monitor patterns or an operations leader tracking purchase approvals, this MCP gives your agent the necessary tools. Vinkius makes connecting this massive system simple, letting any compatible client access all these functions immediately.
019d842e-46c2-7153-afa9-1d5cfa8cea18 Here's how it actually works
The bottom line is you talk naturally to your agent, and it executes the necessary DingTalk function behind the scenes.
Subscribe to this MCP and provide your required DingTalk App Key and App Secret.
Your AI client authenticates using these credentials, granting the connection access to corporate data.
You prompt your agent with a natural language request (e.g., 'Check attendance for last week' or 'List all users in Marketing').
Who is this actually for?
This MCP is for corporate administrators who deal with human resource cycles: HR managers tired of manually cross-referencing timesheets; department heads overwhelmed by managing multiple approval forms; or operations leads needing a single source of truth for team structure.
Needs to run bulk checks on attendance records and verify if policy announcements can be sent across specific departments.
Must quickly check team rosters, send formatted updates about changes, or initiate a purchase approval process for their unit.
Needs to map the entire organizational structure and automate routine notifications across different departments.
What Changes When You Connect
Stop manually checking timesheets. Instead, use get_attendance_records to ask your agent for an immediate report on who was late or absent between two dates.
Managing complex team communication is easier. Use send_markdown_message to send out structured reports—like quarterly results or policy changes—with professional formatting and links.
Don't get lost in the org chart. Running list_all_departments immediately gives you a clear, actionable map of every department and its ID for future queries.
Skip the paperwork trail. If an employee needs time off, your agent can use create_approval_process to start the request instantly, which you then track with get_approval_instance.
You always know who's on the team. By calling list_users_by_department, you get a current roster of user IDs and names for any department in seconds.
See it in action
The Payroll Audit
A manager needs to audit attendance records for three employees across two weeks. They ask their agent, who uses get_attendance_records and then compiles a clean report showing all late arrivals, saving hours of spreadsheet work.
The Restructuring Announcement
HR needs to announce new reporting lines. The agent first calls list_all_departments and then uses the department IDs to send a formatted message via send_markdown_message, ensuring everyone gets the update.
The Expense Check
An employee submits an expense report. Instead of emailing a manager, the agent automatically calls create_approval_process for reimbursement, and the manager uses get_approval_instance to review its status immediately.
Finding Team Contacts
A developer needs contact info for the entire Product Marketing team. The agent first runs list_sub_departments to find the right group, then uses list_users_by_department to pull all necessary user IDs and names.
The honest tradeoffs
Trying to send a simple text message.
The user thinks they just need the basic notification function, so they use send_work_notification but don't include formatting or links. The resulting message looks plain and unprofessional.
For any official announcement or report, use send_markdown_message. This tool lets you structure content with titles, bold text, and clickable links, making the message look professional.
Not knowing which department to query first.
A user tries to call list_users_by_department without a valid ID or assumes the root company directory is '1'. The tool fails because it needs precise context.
Always start by running list_all_departments. This gives you the definitive list of department IDs, which you can then pass to list_users_by_department.
Assuming an approval process exists.
A user tries to check a status using get_approval_instance without knowing the specific process ID. The agent returns an error, and the conversation stalls.
Before checking status, you must first use create_approval_process (if applicable) or get the ID from another source to ensure the instance exists.
When It Fits, When It Doesn't
Use this MCP if your workflow involves corporate data: user directories, organizational hierarchy, attendance records, or formal approvals. Specifically, if you need to check a timesheet using get_attendance_records or initiate an official leave request with create_approval_process, this is the tool. Don't use it if your goal is simple personal messaging; for that, a general chat platform API might suffice. Also, don't try to manage budget calculations here—this MCP handles people and processes, not financial math.
Questions you might have
How do I find all departments using list_all_departments? +
Running list_all_departments provides a complete, top-level list of every department ID in the organization. This is your starting point for mapping or querying other groups.
Can I check an employee's profile using get_user_info? +
Yes, you must provide the user’s unique ID to get_user_info. It pulls up their detailed contact and profile information instantly for verification.
What should I use to send a formatted announcement? Is it send_work_notification? +
For anything that needs structure—like an alert with bold text or clickable links—you must use send_markdown_message. This ensures the message looks professional and organized.
If I need to track a purchase, do I use create_approval_process? +
Yes. You start by calling create_approval_process with the required details (like process code and user ID). This sets up the official workflow instance.
I need to check if a department has sub-teams; what parameters should I use with `list_sub_departments`? +
You pass the parent department's ID to list_sub_departments. This command maps out the full organizational depth under that specific unit, helping you pinpoint niche teams or regional offices.
It’s essential for understanding complex reporting lines and ensuring your notifications go to the right group.
If I want to check if a pending leave request was approved or rejected, which tool should I use: `get_approval_instance`? +
Use get_approval_instance. You simply provide the process instance ID. The function returns the current status (pending, approved, rejected) along with who made the last decision and when.
This is your quickest way to identify bottlenecks in any workflow.
How do I use `get_attendance_records` to find all instances of late or early check-ins? +
When calling get_attendance_records, you must specify the date range. The output includes a flag for normal vs. abnormal attendance.
This allows HR teams to filter directly on discrepancies, skipping through clean data and focusing only on issues.
I know the Department ID; how can I use `list_users_by_department` to get a full roster of users? +
Pass the department's unique ID into list_users_by_department. The function returns names, IDs, and avatars for every user associated with that team.
This is more efficient than listing all company users because you get exactly who belongs in that specific group.
How do I get my DingTalk App Key and App Secret? +
Log in to the DingTalk Developer Console, create an Internal Enterprise Application, then navigate to App Information > Credentials to find your AppKey and AppSecret. Make sure your application has the required API permissions (User Management, Department Management, Attendance, Approval) before using these tools.
Can I send messages to external contacts or only internal employees? +
This MCP server uses Internal Enterprise Application authentication, which means it can only send messages to users within your organization's DingTalk tenant. For external contacts or customer notifications, you would need a different DingTalk application type with extended permissions. All user IDs must belong to employees in your enterprise directory.
How does the attendance tracking work? What data can I retrieve? +
The attendance tool retrieves check-in/check-out records from DingTalk's attendance system. For each record, you get the user ID, timestamp, checkout type (上班签到=check-in, 下班签退=check-out), location information, and whether the attendance was normal or abnormal (late, early leave, missing punch). Date ranges are specified in YYYY-MM-DD format. This data integrates with DingTalk's physical attendance devices and mobile check-in features.
We've already built the connector for DingTalk. Just plug in your AI agents and start using Vinkius.
No hosting. No infrastructure. No complex setup.
All 10 tools are live and waiting.
You're up and running in seconds.
Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.
Built, hosted, and secured by Vinkius. You just connect and go.