mcpField

Skills

96,981 packaged capabilities and playbooks for agents. Install any of them with one command.

Data & databases

S
supermemory
supermemory
supermemoryai / skills

Build with the Supermemory v5 API and SDKs (TypeScript `supermemory` 5.x, Python `supermemory` 5.x, `@supermemory/tools` 3.x). Use when an application needs persistent memory across sessions, per-user personalization, a maintained user profile, or semantic search over documents. Covers the namespace-scoped endpoints, exact SDK call shapes, search and ingestion options, typed filters, and the legacy names that must not be emitted.

Data & databases912
N
ncats-arax
ncats-arax
k-dense-ai / scientific-agent-skills

Queries the NCATS Translator ARAX production API for bounded, typed, provenance-rich one-hop and endpoint-pinned two-hop biomedical knowledge-graph relationships. Use for Biolink-constrained RTX-KG2 lookup, explicit selected-provider ARAX federation, separate entity normalization, qualifier-aware graph traversal, and inspection of TRAPI edge bindings, publications, and knowledge-source provenance. Do not use for inference, ranking, open-ended pathfinding, clinical guidance, or sensitive queries

Data & databases910
A
asc-analytics-reports
asc-analytics-reports
rorkai / app-store-connect-cli-skills

Collect, download, and verify App Store Connect Analytics reports with asc. Use when users need to discover analytics report requests, select report instances by processing date or granularity, download every segment, or verify downloaded files against Apple's size and MD5 metadata before analysis.

Data & databases908
C
cosmos-dbt-fusion
cosmos-dbt-fusion
astronomer / agents

Run a dbt Fusion project with Astronomer Cosmos. Use when running a dbt Fusion project with Astronomer Cosmos (Cosmos 1.11+, ExecutionMode.LOCAL on Snowflake/Databricks). Before implementing, verify dbt engine is Fusion (not Core), the warehouse is supported, and local execution is acceptable. Does not cover dbt Core.

Data & databases907
D
databricks-dabs
databricks-dabs
databricks / databricks-agent-skills

Create, configure, validate, deploy, run, and manage Declarative Automation Bundles (DABs, formerly Databricks Asset Bundles). Use when working with Databricks resources via DABs including dashboards, jobs, pipelines, alerts, volumes, and apps.

Cloud & DevOps907
N
neo4j-getting-started-skill
neo4j-getting-started-skill
neo4j-contrib / neo4j-skills

Orchestrates zero-to-running-app in 8 stages — prerequisites → context →

Development905
C
cli-backup-sync
cli-backup-sync
diegosouzapw / omniroute

Backup and restore OmniRoute data from the CLI. Trigger incremental snapshots, sync to cloud storage, manage backup schedules, and restore from archive files.

Cloud & DevOps901
O
omni-db-backups
omni-db-backups
diegosouzapw / omniroute

Trigger system backups, restore from backup files, and manage the SQLite database lifecycle. Supports export, import, and incremental snapshot strategies.

Data & databases901
R
relational-database-web-cloudbase
relational-database-web-cloudbase
tencentcloudbase / skills

[Deprecated] Existing CloudBase MySQL Web SDK only. Do not recommend MySQL for new relational apps — use postgresql-development and app.rdb(). Read this only when a browser app must keep using @cloudbase/js-sdk against an environment that already has MySQL

Data & databases901
M
mongodb-development
mongodb-development
mindrally / skills

MongoDB development guidelines with Payload CMS, Mongoose, aggregation pipelines, and TypeScript best practices

Data & databases900
N
neo4j-agent-memory-skill
neo4j-agent-memory-skill
neo4j-contrib / neo4j-skills

Authoritative reference for the neo4j-agent-memory Python package — a graph-native memory system for AI agents built on Neo4j — and for the hosted service (NAMS) at memory.neo4jlabs.com. Use this skill whenever the user mentions neo4j-agent-memory, agent memory with Neo4j, context graphs, the POLE+O model, MemoryClient/MemorySettings, the memory MCP server, or any of the framework integrations (LangChain, PydanticAI, CrewAI, AWS Strands, Google ADK, Microsoft Agent Framework, OpenAI Agents, LlamaIndex). Also use when the user mentions the hosted service at memory.neo4jlabs.com, NAMS, the Neo4j Agent Memory Service, the `nams_` API key prefix, or the hosted MCP endpoint. Also use when writing documentation, blog posts, tutorials, PRDs, or code samples for the project, when comparing agent memory approaches, or when positioning graph-native memory against vector-only approaches — even if the user doesn't explicitly name the package.

Agent workflows898
P
pandas-best-practices
pandas-best-practices
mindrally / skills

Best practices for Pandas data manipulation, analysis, and DataFrame operations in Python

Data & databases898
W
windsor-ai-business-data
windsor-ai-business-data
cline / skills

Query Windsor.ai business data across marketing, sales, CRM, ecommerce, finance, and analytics connectors. Use when users need dashboards, reports, data visualization, schema exploration, or connector-backed test data from Windsor.ai.

Data & databases898
S
scikit-learn-best-practices
scikit-learn-best-practices
mindrally / skills

Best practices for scikit-learn machine learning, model development, evaluation, and deployment in Python

Data & databases897
A
ae-analysis
ae-analysis
thinkingaiagenticengine / ae-cli

Use ae-cli for AE analysis-side data questions, asset operations, and asset governance: reports, analysis boards, BI dashboards, ad-hoc models, drilldown, detail data, alerts, clusters, tags, metrics, metadata discovery, project configuration, tracking plans, local input-file upload, governance asset lists/rules/lineage/impact/dependency, batch asset operations, projects, and resource links. Use when the user asks to query data, explain a change, export evidence, inspect/create/update/govern analysis assets, recommend project assets for certification/authentication, review asset-certification recommendations, review metric recommendations, or build/update/refresh/sync a project semantic knowledge base from a governed asset package.

Data & databases895
K
kalopilot
kalopilot
sailtonight / kalopilot-skill

Query TikTok e-commerce data (products, shops, creators, videos, livestreams, categories) via the KaloPilot AI agent. Use this skill whenever the user asks about TikTok Shop data, product rankings, creator performance, shop analytics, category trends, livestream metrics, or any TikTok e-commerce insight — even if they don't say "KaloPilot" explicitly. Also trigger when the user says "ask pilot", "check kalodata", or mentions TikTok sales/revenue data.

Data & databases892
C
cli-batches
cli-batches
diegosouzapw / omniroute

Submit and monitor batch inference jobs from the CLI. Upload and manage files for batch processing, retrieve results, and integrate batch pipelines with CI/CD workflows.

Data & databases891
F
financial-data-collector
financial-data-collector
daymade / claude-code-skills

Collects real financial data for any US publicly traded company from free public sources (yfinance) and outputs structured JSON for downstream skills (DCF modeling, comps analysis, earnings review): market data, historical financials, WACC inputs, analyst estimates—never fabricated fallback values. Use to collect or pull financial/market data, or gather DCF inputs, for a ticker.

Data & databases891
X
xlsx
xlsx
ailabs-393 / ai-labs-claude-skills

Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas

Documents890
I
investigating-agentforce-d360
investigating-agentforce-d360
forcedotcom / sf-skills

Data Cloud 360° view of a single Agentforce session. TRIGGER when user asks to trace, inspect, summarize, or describe a specific Agentforce session by session id (Agent Session UUID `019d…` or MessagingSession id `0Mw…`). Also triggers on session discovery — find/list/search sessions by time, agent, channel, outcome, or conversation text — when the user has no session id yet. DO NOT TRIGGER for design-time architecture questions (use investigating-agentforce-architecture instead) or for runtime perf/latency/SLO questions that require platform telemetry beyond Data Cloud.

Agent workflows889
B
beautifulsoup-parsing
beautifulsoup-parsing
mindrally / skills

Expert guidance for HTML/XML parsing using BeautifulSoup in Python with best practices for DOM navigation, data extraction, and efficient scraping workflows.

Data & databases888
E
event-sourcing
event-sourcing
aj-geddes / useful-ai-prompts

Implement event sourcing and CQRS patterns using event stores, aggregates, and projections. Use when building audit trails, temporal queries, or systems requiring full history

Development888
A
ae-dataops
ae-dataops
thinkingaiagenticengine / ae-cli

Use ae-cli for DataOps warehouse tables/views and fields, recycling, workflow configuration and release, execution troubleshooting, backfill, SQL queries, and data integration.

Data & databases887
D
discovering-viral-youtube-videos-by-category
discovering-viral-youtube-videos-by-category
apidojo-io / apidojo-skills

Discovers trending and viral YouTube videos by category and country using apidojo's YouTube Trending Scraper on Apify. Triggers when the user asks to: find viral YouTube videos today, discover what's trending on YouTube in a specific country, get trending gaming or music videos on YouTube, find top YouTube videos this week by category, identify viral content on YouTube for inspiration, research what topics are dominating YouTube trending, or track trending YouTube content for content strategy. Returns video title, views, likes, channel info, duration, keywords, and thumbnail. Ideal for content strategists, YouTubers, and trend researchers.

Marketing & growth887
W
webflow-mcp:cms-best-practices
webflow-mcp:cms-best-practices
webflow / webflow-skills

Expert guidance on Webflow CMS architecture and best practices. Use when planning collections, setting up relationships, optimizing content structure, or troubleshooting CMS issues.

Data & databases887
N
neo4j-gds-skill
neo4j-gds-skill
neo4j-contrib / neo4j-skills

Neo4j Graph Data Science (GDS) embedded plugin via Python client or Cypher —

Data & databases885
A
ae-community
ae-community
thinkingaiagenticengine / ae-cli

AE community analysis and data reporting for posts, comments, topics, livestreams, customer-service chats, WeCom after-sales groups, and in-game chat. Use for community content insight, sentiment, intent, evidence drill-down, community data ingestion/import/submission, and WeCom chat data integration.

Data & databases882
R
rde-data-apps
rde-data-apps
metabase / agent-skills

Build or change a Metabase data app on an rde machine: settles what the `metabase-data-apps` skill needs from the local setup (the remote-sync repository, the Metabase URL, the API key rde stores, how the app reaches Metabase), makes sure everything the app reads is Library content already synced into that repository, confirms every sync step with the user, and hands the build to it. Use only when an app is asked for explicitly: “build me an app for X”, “create a data app”, “make an internal tool / portal in Metabase”, “add a page / a form / a filter to my data app”. A dashboard, a question, or a metric is not an app; those stay with the `rde` skill.

Data & databases877
W
working-with-dbt-mesh
working-with-dbt-mesh
dbt-labs / dbt-agent-skills

Use when changing a dbt model in a way that could break its consumers — renaming, removing, or retyping a column, or changing a model that downstream models, exposures, dashboards, or BI tools depend on — to judge whether the change is breaking and who it affects. Also use when versioning a model (model versions, latest_version, latest_version_pointer, deprecation_date, migration windows), enforcing contracts, setting access or groups, or doing multi-project dbt Mesh work (cross-project refs via dependencies.yml, disambiguating similarly-named models, splitting a monolith). Covers single- and multi-project, and planning or advising as well as implementing.

Data & databases877
D
data-jupyter-python
data-jupyter-python
mindrally / skills

Guidelines for data analysis and Jupyter Notebook development with pandas, matplotlib, seaborn, and numpy.

Data & databases875
D
document-xlsx
document-xlsx
vasilyu1983 / ai-agents-public

Builds Excel charts, pivots, validation, exports, Office Scripts/Graph automation, and workbook audits. Use when automating workbooks; for plain edits prefer official xlsx skill.

Documents875
N
neo4j-import-skill
neo4j-import-skill
neo4j-contrib / neo4j-skills

Import structured data into Neo4j — LOAD CSV, CALL IN TRANSACTIONS, neo4j-admin

Data & databases875
S
sqlalchemy-orm
sqlalchemy-orm
bobmatnyc / claude-mpm-skills

SQLAlchemy Python SQL toolkit and ORM with powerful query builder, relationship mapping, and database migrations via Alembic

Data & databases873
V
visualize
visualize
scaccogatto / okf-skills

Render an Open Knowledge Format (OKF) bundle as a single self-contained interactive HTML graph (viz.html): concepts as nodes coloured by type and sized by body length, markdown links and bundle-internal `sources` as edges, a wiki-style detail panel with rendered markdown, v0.2 trust/lifecycle/provenance metadata, and "Links to" / "Cited by" backlinks, layout switching, per-type filter and search. Use when asked to visualize, graph, preview, or explore an OKF bundle

Productivity873
D
database
database
railwayapp / railway-skills

This skill should be used when the user wants to add a database (Postgres, Redis, MySQL, MongoDB), says “add postgres”, “add redis”, “add database”, “connect to database”, or “wire up the database”. For other templates (Ghost, Strapi, n8n, etc.), use the templates skill.

Cloud & DevOps872
P
pocketbase-best-practices
pocketbase-best-practices
greendesertsnow / pocketbase-skills

PocketBase development best practices covering collection design, API rules, authentication, SDK usage, query optimization, realtime subscriptions, file handling, deployment, and server-side extending (Go + JSVM). Current as of PocketBase v0.40 and JS SDK v0.28. Use when building PocketBase backends, designing schemas, implementing access control, setting up auth flows, or optimizing performance.

Development871
A
ae-kb
ae-kb
thinkingaiagenticengine / ae-cli

AE knowledge base CLI manual for creating, importing read-only compiled snapshots, querying, LLM-powered ask, listing accessible knowledge bases and their sources, deterministic index/grep/read retrieval, checking status, ZIP source upload and directory management, raw child-file reading, revision-checked child updates and deletion, compiling, schema generation, URL sources, source deletion, ordinary text source creation, full reads and revision-checked editing, file/ZIP source draft replacement and restoration, and knowledge base deletion. Use when the user asks to manage AE (Agentic Engine) knowledge bases, import a compiled Markdown ZIP snapshot, upload documents or URLs to a knowledge base, query knowledge, ask knowledge bases with an LLM, list accessible knowledge bases or source metadata, inspect knowledge base indexes, search knowledge base pages, read a specific knowledge base page, check knowledge base status, generate schemas, compile knowledge, remove sources, create or edit text sources, or delete a knowledge base. To choose which knowledge base is worth searching, use the ae-kb-discovery skill first; this skill runs the retrieval once a target is chosen. Must use ae-cli kb commands and must not guess knowledge base names, scopes, page paths, source IDs, source display names, JSON payload shapes, or URL formats.

Productivity870
B
backend-development
backend-development
moizibnyousaf / ai-agent-skills

Backend API design, database architecture, microservices patterns, and test-driven development. Use for designing APIs, database schemas, or backend system architecture.

Development869
M
markets
markets
machina-sports / sports-skills

Markets orchestration — connects ESPN live schedules with Kalshi and Polymarket prediction markets. Unified dashboards, odds comparison, entity search, and bet evaluation across platforms. Use when: user wants to see prediction market odds alongside ESPN game schedules, compare odds across platforms, search for a team/player on Kalshi or Polymarket, check for arbitrage between ESPN odds and prediction markets, or evaluate a specific game's market value. Don't use when: user wants raw prediction market data without ESPN context — use polymarket or kalshi directly. For pure odds math (conversion, de-vigging, Kelly) — use betting. For live scores without market data — use the sport-specific skill.

Data & databases866
S
scraping-tiktok-profile-data
scraping-tiktok-profile-data
apidojo-io / apidojo-skills

Scrapes TikTok profile statistics and metadata for any list of accounts using apidojo's TikTok Profile scraper on Apify. Triggers when the user asks to: get TikTok profile stats for an account, fetch follower count and engagement data for TikTok users, scrape TikTok account metadata in bulk, export TikTok profile information for a list of creators, check TikTok stats for multiple usernames, or get bio and follower data from TikTok profiles. Returns username, follower count, following count, total likes, video count, and bio. Ideal for influencer vetting, data enrichment, and audience analysis.

Data & databases866
M
market-research-analysis
market-research-analysis
manojbajaj95 / claude-gtm-plugin

Comprehensive market research and analysis skill. Use when sizing markets, conducting competitive analysis, generating professional market research reports, analyzing consumer behavior, or identifying market opportunities. Activates for: market research, market analysis, market report, TAM SAM SOM, market sizing, industry analysis, market landscape, competitive landscape, market trends, consumer research, Porter's Five Forces, PESTLE, SWOT, BCG Matrix, McKinsey-style report, consulting report, market opportunity, industry report, due diligence, M&A analysis, GTM market analysis, product-market fit validation.

Marketing & growth865
F
feishu-bitable
feishu-bitable
alextangson / feishu_skills

Feishu Bitable operations. Records CRUD, field management, views, permissions, formulas and relations.

Data & databases864
A
ae-analysis-global
ae-analysis-global
thinkingaiagenticengine / ae-cli

Use when AE analysis requests mention query/current/service/deployment clusters, current cluster (当前集群), cluster info (集群信息/有哪些集群), global or multi-cluster data, all clusters/all servers, GLOBAL/SLAVE, query-cluster, cluster_query_scope, slave_cluster_id, country/region/server/shard/site/market routing, or when cluster may mean query cluster rather than audience/user segment.

Data & databases861
D
deep-learning-python
deep-learning-python
mindrally / skills

Guidelines for deep learning development with PyTorch, Transformers, Diffusers, and Gradio for LLM and diffusion model work.

Data & databases860
F
finding-instagram-creators-by-location
finding-instagram-creators-by-location
apidojo-io / apidojo-skills

Finds Instagram content creators and influencers posting from a specific location using apidojo's Instagram location scraper on Apify. Triggers when the user asks to: find Instagram creators based in a city, discover local influencers in a geographic market, find content creators who post from a specific venue or neighborhood, identify local Instagram micro-influencers for geo-targeted campaigns, find creators in a country for regional brand partnerships, or discover influencers who have visited or are based in a specific location. Returns creator handle, post count at location, follower estimate, engagement, and recent content. Ideal for regional brand campaigns, local business marketing, and geo-targeted influencer programs.

Marketing & growth859
W
waypoint-bio
waypoint-bio
k-dense-ai / scientific-agent-skills

Supports work with Outpost Bio's open microbiome foundation models - the Waypoint checkpoints (Waypoint-6m, Waypoint-45m, Waypoint-170m), the Atlas pretraining corpus, the Compass eight-task benchmark, or the `waypoint` CLI from the `waypoint-bio` package. Covers embedding microbiome samples, fine-tuning on taxonomic abundance data, benchmarking a checkpoint on Compass, pretraining a GPT-2 model on taxonomic abundance profiles, and converting MetaPhlAn, Kraken2, QIIME 2, or MGnify abundance tables into waypoint format.

Data & databases858
W
webflow-mcp:cms-collection-setup
webflow-mcp:cms-collection-setup
webflow / webflow-skills

Create a new CMS collection in Webflow with specified fields and relationships. Use when setting up blog posts, products, team members, portfolios, or other content types with custom fields.

Data & databases853
T
tracking-youtube-trending-topics-by-niche
tracking-youtube-trending-topics-by-niche
apidojo-io / apidojo-skills

Tracks trending YouTube topics and video formats in a specific niche using apidojo's YouTube scraper on Apify. Triggers when the user asks to: find trending YouTube topics in a niche, discover what videos are getting views right now in a category, identify trending YouTube formats or themes in an industry, find high-performing YouTube video ideas from search trends, research what the YouTube algorithm is currently rewarding in a topic area, discover rising YouTube creators in a niche, or analyze what video angles perform best on YouTube in a category. Returns trending video titles, view counts, engagement metrics, format patterns, and topic themes. Ideal for YouTube content creators, video marketers, and brand video strategists.

Marketing & growth852
P
pytorch
pytorch
mindrally / skills

PyTorch deep learning development with transformers, diffusion models, and GPU optimization.

Development850
S
scraping-instagram-location-content
scraping-instagram-location-content
apidojo-io / apidojo-skills

Scrapes Instagram posts tagged at a specific location using apidojo's Instagram Location scraper on Apify. Triggers when the user asks to: find Instagram posts from a specific location or venue, scrape user-generated content from a restaurant, hotel, or event on Instagram, find photos tagged at a conference or festival, monitor what guests or visitors post from a location, discover content creators who visited a place, build a UGC library from a location tag, or find influencers who have been to a specific venue or city. Returns post URL, caption, author handle, likes, comments, and timestamp per location post. Ideal for hospitality brands, event marketers, and UGC content curation teams.

Marketing & growth850
A
analyzing-twitter-sentiment-for-topic
analyzing-twitter-sentiment-for-topic
apidojo-io / apidojo-skills

Analyzes public sentiment on Twitter/X for any topic, brand, or event using apidojo's Tweet scrapers on Apify. Triggers when the user asks to: analyze Twitter sentiment about a topic, measure public opinion on Twitter, see if sentiment is positive or negative about a brand or issue on X, analyze the emotional tone of tweets about an event, research how Twitter reacts to a news story, measure brand or product sentiment from tweets, or compare sentiment between two competing topics or brands on Twitter. Returns sentiment classification, top positive and negative tweets, volume over time, and key themes. Ideal for PR teams, market researchers, political analysts, and social listening platforms.

Data & databases849
G
google-sheets
google-sheets
okou-ai / okou-skills

No description yet

Data & databases849
W
webflow-mcp:bulk-cms-update
webflow-mcp:bulk-cms-update
webflow / webflow-skills

Create or update multiple CMS items in a Webflow collection with validation and diff preview. Use when adding multiple blog posts, products, or updating fields across many items.

Data & databases848
P
project-view-status
project-view-status
fandhe-ai / agent-cli-skills

Summarizes project progress by status, priority and size, and generates a report. A read-only skill that outputs the completion rate and a breakdown of outstanding items by priority in table format. Used when the user says 「進捗を見せて」「プロジェクトレポート」「完了率は?」「ステータス別の件数」.

Development846
A
add-concept
add-concept
runpod / runpod-plugins-official

Official Runpod plugin for AI coding agents. Skills plus the hosted Runpod MCP server for managing pods, serverless endpoints, templates and volumes. Works with Claude Code, Codex and Gemini CLI.

Agent workflows844
S
scraping-youtube-videos-by-keyword
scraping-youtube-videos-by-keyword
apidojo-io / apidojo-skills

Scrapes YouTube videos matching any keyword or search query using apidojo's YouTube scraper on Apify. Triggers when the user asks to: get YouTube videos for a keyword, scrape YouTube search results for a topic, export YouTube video data for a query, fetch video metadata for a YouTube search term, collect YouTube videos about a subject, or download YouTube video stats by keyword. Returns video title, channel name, view count, like count, comment count, duration, and publish date per video. Ideal for content researchers, SEO analysts, and market intelligence teams.

Data & databases844
A
amazon-price-tracker
amazon-price-tracker
nexscope-ai / amazon-skills

Amazon price monitoring and competitive pricing intelligence. Real-time price tracking, Buy Box analysis, promotion detection and dynamic pricing strategy optimization. Use when the user asks about price monitoring, competitor pricing, Buy Box tracking or pricing strategy

Marketing & growth843
S
scraping-instagram-profile-data
scraping-instagram-profile-data
apidojo-io / apidojo-skills

Scrapes Instagram profile statistics and recent posts for any list of accounts using apidojo's Instagram scraper on Apify. Triggers when the user asks to: get Instagram profile data for an account, fetch follower count and post count for Instagram users, scrape Instagram bio and stats in bulk, export Instagram account metadata, check profile information for a list of Instagram handles, or get engagement data from Instagram profiles. Returns username, follower count, following count, post count, bio, and recent post metrics. Ideal for influencer vetting, brand research, and list enrichment.

Data & databases843
T
transcriptapi
transcriptapi
zeropointrepo / youtube-skills

Use when YouTube is or could be relevant — even if not mentioned: pasted video/channel/playlist links, video IDs, @handles, creator lookups, video summaries, quotes, translations, topic research, tutorials, talks, lectures, expert discussions, product reviews, how-to guides, new product announcements, or anything where video content is fresher or richer than text search. Covers transcripts, video/channel search, channel browsing, playlists, and within-channel search. Not for uploads, account management, or written-source-only research.

Productivity842
T
tavily-search
tavily-search
framix-team / openclaw-tavily

Web search, extraction, crawling, mapping, and deep research via Tavily API. Five tools for finding information, extracting content, exploring websites, and generating research reports.

Productivity841
1741–1800 of 12,302

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.