Tangent
by tangent.directory · remote · no sign-in to list tools · v0.2.0 · published by directory.tangent
Hand-picked design references, UI patterns and the people behind them, each with why it fits.
10 tools: 1 change things and 9 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads9Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http tangent https://tangent.directory/api/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
10 tools
Changes things 1Claude Code: ask
Only reads 9Claude Code: allow
browse_verticalThe newest resources in one section: inspiration, components, motion, build, visuals, tools or learn.Reads text others writeNo findings
Why it is in this group
- The name "browse_vertical" says "browse": a word for reading.
What it can reach
- untrusted-inputThe name "browse_vertical" says "browse": it reads web pages, which anyone can write.
Description, as the server wrote it The newest resources in one section: inspiration, components, motion, build, visuals, tools or learn. Use it to browse without a query, with the same filters as search_resources and cursor paging. Example: {"vertical": "components", "technology": "react", "limit": 20}
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
find_inspirationTurns a design brief into a short list of references (default 8, at most 10), each with `why` it fits: the pattern, style, category, technology or platform it shares with the brief…No findings
Why it is in this group
- The name "find_inspiration" says "find": a word for reading.
Description, as the server wrote it Turns a design brief into a short list of references (default 8, at most 10), each with `why` it fits: the pattern, style, category, technology or platform it shares with the brief, or how search matched it (e.g. "similar meaning"). It reads the brief against Tangent's taxonomy and synonyms and combines that with search; no AI calls. Use it when someone describes a screen or product they are about to design. `interpreted_as` shows how the brief was read. Example: {"brief": "onboarding for a fintech app, playful but clean", "platform": "mobile"}
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_patternOne UI pattern: its definition, its best examples, related patterns and the technologies the examples use.No findings
Why it is in this group
- The name "get_pattern" says "get": a word for reading.
Description, as the server wrote it One UI pattern: its definition, its best examples, related patterns and the technologies the examples use. Use it before designing that pattern. Example: {"slug": "empty-state", "limit": 8}
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_personOne person's profile: role, bio, website, social links, studios, what their site is built with (confirmed technologies) and their work on Tangent.Reads text others writeNo findings
Why it is in this group
- The name "get_person" says "get": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "website": it reads web pages, which anyone can write.
Description, as the server wrote it One person's profile: role, bio, website, social links, studios, what their site is built with (confirmed technologies) and their work on Tangent. Set include_image to also get a small preview of their site. Example: {"slug": "emil-kowalski"}
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_resourceEverything Tangent knows about one resource: descriptions, taxonomy, editorial notes, the people behind it, and its related resources (tangents) with reasons.Reads private dataNo findings
Why it is in this group
- The name "get_resource" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "note": it reads notes.
Description, as the server wrote it Everything Tangent knows about one resource: descriptions, taxonomy, editorial notes, the people behind it, and its related resources (tangents) with reasons. Use it to go deeper on a search pick. Set include_image to also get a small screenshot. Example: {"slug": "linear"}
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_patternsEvery UI and interaction pattern resources are filed under (Command Menu, Onboarding, Empty State and more), with example counts.No findings
Why it is in this group
- The name "list_patterns" says "list": a word for reading.
Description, as the server wrote it Every UI and interaction pattern resources are filed under (Command Menu, Onboarding, Empty State and more), with example counts. Use it to pick a slug for get_pattern. Example: {}
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_peopleDesigners and design engineers in the catalogue, featured first, then by name, with optional technology and role filters and cursor paging.No findings
Why it is in this group
- The name "list_people" says "list": a word for reading.
Description, as the server wrote it Designers and design engineers in the catalogue, featured first, then by name, with optional technology and role filters and cursor paging. Use search_people to find someone by name or focus. Example: {"role": "design engineer", "technology": "nextjs", "limit": 20}
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_peopleFind designers and design engineers by name, role, focus or stack, ranked, with optional technology and role filters.No findings
Why it is in this group
- The name "search_people" says "search": a word for reading.
Description, as the server wrote it Find designers and design engineers by name, role, focus or stack, ranked, with optional technology and role filters. Example: {"query": "motion", "role": "design engineer"}
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_resourcesRanked search over Tangent's catalogue of design and design-engineering resources (sites, products, component libraries, tools, articles).No findings
Why it is in this group
- The name "search_resources" says "search": a word for reading.
Description, as the server wrote it Ranked search over Tangent's catalogue of design and design-engineering resources (sites, products, component libraries, tools, articles). Use it when you know roughly what you want; narrow with vertical, category, technology, type, pricing or open_source, and page with cursor. For a whole brief, use find_inspiration. Example: {"query": "command menu", "technology": "react", "limit": 5}
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.
- Reads private data1
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write2
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Install
Pinned to version 0.2.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http tangent https://tangent.directory/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__tangent__find_inspiration",
"mcp__tangent__search_resources",
"mcp__tangent__browse_vertical",
"mcp__tangent__get_resource",
"mcp__tangent__list_patterns",
"mcp__tangent__get_pattern",
"mcp__tangent__search_people",
"mcp__tangent__list_people",
"mcp__tangent__get_person"
],
"ask": [
"mcp__tangent__related_resources"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as tangent. Review it before you use it.
Capability tags behind 3 rules
- mcp__tangent__browse_vertical untrusted-input
- mcp__tangent__get_resource private-data
- mcp__tangent__get_person untrusted-input