ReactUse
This server provides access to the ReactUse (@reactuses/core) library, enabling you to discover and look up documentation for React hooks via three capabilities:
Get hook details (
get_hook): Fetch full documentation for a specific hook by name (case-insensitive), including its description, usage examples, API details (arguments and return values), category, and documentation URL.List hooks (
list_hooks): Retrieve all available hooks, optionally filtered by category (browser,effect,element,state, orintegrations). Returns each hook's name, category, description, and URL, along with a total count.Search hooks (
search_hooks): Search across hooks by name, description, or documentation content. Results are ranked by relevance, and you can limit the number returned (up to 50).
Sponsors
Sponsoring ReactUse puts your product in front of the React developers who install @reactuses/core every month — your logo right here at the top of the README, and on reactuse.com/sponsor. Live reach:
Related MCP server: daisyui-mcp-server
Introduction
ReactUse is a comprehensive collection of 100+ essential React Hooks for building modern React applications. Inspired by VueUse, it provides production-ready hooks for browser APIs, state management, sensors, animations, DOM elements, and more.
Features
🎯 100+ Hooks — The most comprehensive React hooks collection
📦 Tree-Shakable — Import only what you need
🔷 TypeScript — Full type definitions for every hook
🖥️ SSR Compatible — Works with Next.js, Remix, and more
📚 Well Documented — Interactive demos for every hook
🤖 MCP Support — AI-powered hook discovery
Installation
npm i @reactuses/coreQuick Start
import { useToggle } from "@reactuses/core";
const Demo = () => {
const [on, toggle] = useToggle(true);
return <button onClick={toggle}>{on ? "ON" : "OFF"}</button>;
};Who's Using This
Hook Categories
useClipboard, useColorMode, useCookie, useDarkMode, useDocumentVisibility, useEyeDropper, useFavicon, useFileDialog, useFullscreen, useMediaDevices, useMediaQuery, useOnline, usePermission, usePlatform, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, useScreenSafeArea, useScriptTag, useTextDirection, useTitle, useWebNotification, useBroadcastChannel, useEventSource, useFetchEventSource, useGeolocation, useIdle, useKeyModifier, useMobileLandscape, useNetwork, useOrientation, usePageLeave, useSpeechRecognition, useWindowFocus, useWindowScroll, useWindowSize, and more...
useBoolean, useControlled, useCounter, useCycleList, useDebounce, useDebounceFn, useDisclosure, useLocalStorage, useMap, usePrevious, useSessionStorage, useSetState, useThrottle, useThrottleFn, useToggle, and more...
useClickOutside, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementSize, useElementVisibility, useFocus, useHover, useInfiniteScroll, useIntersectionObserver, useLongPress, useMeasure, useMouse, useMousePressed, useMutationObserver, useResizeObserver, useScroll, useScrollIntoView, and more...
useAsyncEffect, useCustomCompareEffect, useDeepCompareEffect, useEventListener, useInterval, useMount, useRafFn, useTimeout, useTimeoutFn, useUnmount, useUpdate, and more...
useQRCode
MCP Support
If you want to use the MCP (Model Context Protocol) integration with reactuse, you can easily set it up with the following configuration. This allows you to run the @reactuses/mcp utility via npx for enhanced command-line support and automation.
Add the following to your configuration:
"@reactuses/mcp": {
"command": "npx",
"args": ["-y", "@reactuses/mcp@latest"],
"type": "stdio"
}Documentation
📖 Full Documentation | 📖 LLM-friendly Documentation | 💬 Discord | 🐛 Issues
Contribute
See the Contributing Guide
ChangeLog
See the ChangeLog
Thanks
This project is heavily inspired by the following awesome projects.
Support ReactUse
ReactUse is free, released into the public domain under the Unlicense, and maintained in spare time. If it saved you a day of work, consider becoming a sponsor (from $5/month) or buying me a coffee — it keeps the hooks maintained and the docs interactive. 🥰
Available Tools
3 toolsget_hookGet hook detailsARead-onlyIdempotent
Fetch full documentation (description, usage example, API table) for a specific @reactuses/core React hook by name.
| Name | Required | Description | Default |
|---|---|---|---|
| hook_name | Yes | Hook name, e.g. "useToggle", "useClipboard". Case-insensitive. |
Output Schema
| Name | Required | Description |
|---|---|---|
| api | Yes | Auto-generated API table (arguments, returns) |
| url | Yes | |
| body | Yes | Markdown body of the hook documentation (usage, examples, notes) |
| name | Yes | |
| category | Yes | |
| description | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds value by specifying the exact content returned (description, usage example, API table), which goes beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys the complete purpose. No extraneous information; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 parameter), presence of output schema, and clear annotations, the description is fully adequate. It tells the agent what the tool does and what it returns, without needing further elaboration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (hook_name) with schema description coverage at 100%. The description does not add extra meaning beyond what the schema provides; it simply restates the purpose. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Fetch') and resource ('full documentation for a specific @reactuses/core React hook by name'). It distinguishes from sibling tools (list_hooks, search_hooks) by specifying that it targets a single hook by name and returns detailed documentation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when one needs detailed docs for a specific hook. It does not explicitly state when not to use or compare with siblings, but the context is clear and the sibling list is provided in the context signals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_hooksList hooksARead-onlyIdempotent
List all available @reactuses/core hooks, optionally filtered by category.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Optional category filter. One of: browser, effect, element, state, integrations. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hooks | Yes | |
| total | Yes | |
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide read-only and idempotent safety info. Description adds behavioral detail about optional filtering, which is useful beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, immediately states purpose and optionality. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with annotations and output schema, the description fully covers all necessary context: what it lists, and optional filtering. No missing information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers parameter fully with enum and description. Description only reiterates the category filter as optional, adding no new meaning. With 100% coverage, baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists all hooks from a specific library, optionally filtered by category. It distinguishes itself from sibling tools like get_hook (single hook) and search_hooks (search by term).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly suggests use when listing hooks or filtering by category, but does not explicitly state when not to use or provide direct alternatives. Sibling names offer context but exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_hooksSearch hooksARead-onlyIdempotent
Search @reactuses/core hooks by name, description, or content. Results are ranked by relevance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default 20). | |
| query | Yes | Search query (matches hook names, descriptions, and body text). |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| total | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and idempotentHint=true, indicating a safe read operation. The description adds valuable behavioral context: results are 'ranked by relevance' and match on name, description, or content, going beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) with no wasted words. All information is front-loaded and directly useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 parameters, clear search functionality, output schema present), the description is complete. It correctly omits redundant details about the return structure since an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both parameters have descriptions). The tool description adds no new parameter meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the action ('Search'), the resource ('@reactuses/core hooks'), and the scope ('by name, description, or content'). It also mentions relevance ranking, which differentiates it from the sibling tools 'get_hook' (single retrieval) and 'list_hooks' (listing all).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (for searching hooks by text) but does not explicitly state when not to use it or mention alternatives. However, the sibling context makes the usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v6.3.3- Added
get_hook - Removed
get-hook-details - Added
list_hooks - Removed
list-hooks - Added
search_hooks - Removed
search-hooks
3 tool updates
v1.0.2- First observed
get-hook-details - First observed
list-hooks - First observed
search-hooks
TDQS
Each tool has a clear, distinct purpose: get_hook retrieves details for a specific hook, list_hooks lists all hooks with optional category filter, and search_hooks performs a relevance-ranked search. No ambiguity between them.
All tool names follow a consistent verb_noun pattern (list_hooks, get_hook, search_hooks) using snake_case, making them predictable and easy to understand.
Three tools is minimal but perfectly scoped for the server's purpose: discovering and retrieving information about React hooks. Each tool earns its place without being over- or under-abundant.
The tool set covers the essential operations for a hook library: listing all hooks (with filtering), searching, and fetching full details for a specific hook. There are no obvious gaps given the read-only nature of the domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
MCP server for agentverse documentation, generated by doc2mcp.
MCP server for langchain documentation, generated by doc2mcp.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that indexes WordPress hooks, filters, block registrations, and JS API calls to provide AI assistants with a verified source-code database. It enables models to search, validate, and retrieve code context for WordPress and its plugins to eliminate hook-name hallucinations.3972MIT
- AlicenseAqualityAmaintenanceMCP server for daisyUI React components that enables AI coding assistants to search documentation, look up props, and retrieve code examples.5142MIT
- AlicenseBqualityDmaintenanceAn MCP server that scans React and Vue projects, extracts component metadata (props, slots, events, imports, usage), and exposes it to AI coding agents via structured tools.71MIT
- FlicenseNot gradedqualityDmaintenanceMCP server providing AI coding assistants with documentation and source code for @gaddario98 React packages, including tools for listing packages, retrieving docs and types, and searching source.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/childrentime/reactuse'
If you have feedback or need assistance with the MCP directory API, please join our Discord server