fyipedia-mcp
Unified MCP server providing AI assistants with 53 tools from 10 developer tool packages, including color conversion, emoji metadata, symbol encoding, Unicode lookup, Google Fonts, distance calculation, timezone operations, Korean romanization, unit conversion, and holiday dates.
README
fyipedia-mcp
Unified MCP server for the FYIPedia developer tools ecosystem. One server gives AI assistants access to 53 tools from 10 packages -- color conversion, emoji metadata, symbol encoding, Unicode lookup, Google Fonts, distance calculation, timezone operations, Korean romanization, unit conversion, and holiday dates.
One config, 53 tools. Works with Claude Desktop, Cursor, Windsurf, Continue, and any MCP-compatible client. Each package is loaded lazily -- only installed packages register their tools.
<p align="center"> <img src="demo.gif" alt="fyipedia-mcp demo — MCP server for AI agents" width="800"> </p>
Table of Contents
- Install
- Integration Guides
- What You Can Do
- Available Tools (53 total)
- Architecture
- Features
- Also Available as CLI
- FYIPedia Developer Tools
- Links
- License
Install
pip install "fyipedia-mcp[all]" # All 53 tools from 10 packages
pip install "fyipedia-mcp[color,distance]" # Just color + distance (14 tools)
pip install "fyipedia-mcp[color,emoji,font]" # Pick any combination
pip install fyipedia-mcp # Core only (no tools)
Requires Python 3.10+. Each package is an optional dependency.
Integration Guides
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows):
{
"mcpServers": {
"fyipedia": {
"command": "python",
"args": ["-m", "fyipedia_mcp.server"]
}
}
}
Restart Claude Desktop. You should see 53 tools available under "fyipedia".
Cursor
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"fyipedia": {
"command": "python",
"args": ["-m", "fyipedia_mcp.server"]
}
}
}
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"fyipedia": {
"command": "python",
"args": ["-m", "fyipedia_mcp.server"]
}
}
}
Claude Code
Add to ~/.claude/settings.json:
{
"mcpServers": {
"fyipedia": {
"command": "python",
"args": ["-m", "fyipedia_mcp.server"]
}
}
}
Standalone
Run the server directly for testing:
python -m fyipedia_mcp.server
What You Can Do
Color Analysis
AI assistants can use the 9 color tools to answer questions about color accessibility, design systems, and visual perception. Ask your assistant to check whether a text/background combination meets WCAG 2.1 AA or AAA standards, generate a Tailwind-style shade palette from a brand color, simulate how a UI appears to users with protanopia or deuteranopia, or mix two colors in perceptual Lab space for accurate blending.
"Check if #1A1A2E text on #F0F0F0 background passes WCAG AA"
"Generate a shade palette from our brand blue #3B82F6"
"How does #FF5733 look to someone with color blindness?"
"What's the complementary color of #8B5CF6?"
Learn more: ColorFYI
Text & Encoding
The emoji, Unicode, and symbol tools give AI assistants access to 3,953 emoji metadata records, 17 Unicode encoding formats, and 11 symbol encoding representations. Your assistant can look up any emoji by keyword or character, encode text for HTML/CSS/JavaScript/Python, find Unicode character properties like script and bidirectional class, and reverse-lookup HTML entities.
"What's the Unicode codepoint for the fire emoji?"
"Encode the copyright symbol for use in HTML, CSS, and JavaScript"
"Search for all arrow-related Unicode characters"
"What HTML entity represents the hearts symbol?"
Learn more: EmojiFYI · UnicodeFYI · SymbolFYI
Geography & Time
The 10 distance and time tools let AI assistants calculate great-circle distances using the Haversine formula, determine compass bearings between coordinates, find geographic midpoints, estimate travel times by car/train/plane, and handle timezone conversions across all IANA zones. Assistants can also find overlapping business hours across multiple time zones and look up sunrise/sunset times for any location.
"How far is it from Seoul to Tokyo, and what's the flight time?"
"What time is it in New York when it's 9 AM in Seoul?"
"Find overlapping business hours between London, Tokyo, and San Francisco"
"When is sunrise today in Paris?"
Learn more: DistanceFYI · TimeFYI
Reference Data
The unit, font, holiday, and name tools provide AI assistants with structured reference data. Convert between 220 units across 20 measurement categories with Decimal precision. Look up Google Fonts metadata, CSS import snippets, and font pairing recommendations. Check public holidays for 100+ countries, calculate Easter dates, and find specific weekday occurrences. Romanize Korean text using the official Revised Romanization system and look up Five Elements for CJK stroke counts.
"Convert 185 centimeters to feet and inches"
"What Google Fonts pair well with Inter for body text?"
"Is December 25th a holiday in Japan?"
"Romanize the Korean name 김민준"
Learn more: UnitFYI · FontFYI · HolidayFYI · NameFYI
Available Tools (53 total)
Color Tools (9 tools) -- colorfyi
| Tool | Parameters | Description |
|---|---|---|
colorfyi_color_info |
hex_code |
Convert hex to 7 color spaces (RGB, HSL, HSV, CMYK, Lab, OKLCH) |
colorfyi_contrast_check |
fg, bg |
WCAG 2.1 contrast ratio with AA/AAA compliance checks |
colorfyi_color_harmonies |
hex_code |
5 harmony types (complementary, analogous, triadic, split-comp, tetradic) |
colorfyi_color_shades |
hex_code |
Tailwind-style shade palette (50-950 scale) |
colorfyi_simulate_color_blindness |
hex_code |
Protanopia, deuteranopia, tritanopia, achromatopsia simulation |
colorfyi_mix_colors |
hex1, hex2, ratio? |
Mix two colors in perceptual Lab space |
colorfyi_compare_colors |
hex1, hex2 |
Delta E comparison, contrast ratio, gradient |
colorfyi_gradient |
hex1, hex2, steps? |
Smooth perceptual gradient steps |
colorfyi_text_color_for_background |
hex_code |
Best text color (black or white) for any background |
Emoji Tools (7 tools) -- emojifyi
| Tool | Parameters | Description |
|---|---|---|
emojifyi_emoji_lookup |
slug |
Full emoji metadata (character, codepoint, category, Unicode version, skin tones) |
emojifyi_emoji_by_char |
character |
Reverse lookup -- find emoji info from character |
emojifyi_emoji_search |
query, limit? |
Search 3,953 emojis by keyword |
emojifyi_emoji_encode |
character |
8 encodings (UTF-8, UTF-16, HTML decimal/hex, CSS, Python, JS, Java) |
emojifyi_emoji_categories |
-- | All 10 emoji categories with icons and counts |
emojifyi_emoji_by_category |
category_slug, limit? |
Browse emojis within a category |
emojifyi_emoji_stats |
-- | Dataset statistics (total emojis, ZWJ sequences, skin tone variants) |
Symbol Tools (3 tools) -- symbolfyi
| Tool | Parameters | Description |
|---|---|---|
symbolfyi_symbol_info |
character |
Full Unicode properties (name, block, script, bidi, combining) + 11 encodings |
symbolfyi_symbol_encode |
character |
11 formats (Unicode, HTML decimal/hex/entity, CSS, JS, Python, Java, UTF-8/16, URL) |
symbolfyi_html_entity_lookup |
entity |
Reverse HTML entity lookup (e.g., ♥ to character) |
Unicode Tools (4 tools) -- unicodefyi
| Tool | Parameters | Description |
|---|---|---|
unicodefyi_char_info |
codepoint_or_char |
Full Unicode info (accepts U+hex, character, or hex codepoint) |
unicodefyi_char_encode |
codepoint_or_char |
17 encodings (HTML, CSS, JS, Python, Go, Ruby, Rust, C/C++, URL, UTF-8/16/32) |
unicodefyi_unicode_search |
query, limit? |
Search characters by name substring |
unicodefyi_html_entity_lookup |
entity |
HTML entity lookup (e.g., & to ampersand) |
Font Tools (6 tools) -- fontfyi
| Tool | Parameters | Description |
|---|---|---|
fontfyi_font_info |
slug |
Google Font metadata (family, category, weights, subsets, designer, rank) |
fontfyi_font_search |
query, limit? |
Search Google Fonts by name |
fontfyi_font_css |
slug |
CSS import snippet + font-family declaration |
fontfyi_font_pairings |
slug |
Font pairing recommendations with mood and use cases |
fontfyi_font_stacks |
-- | 10 CSS font stack presets for common use cases |
fontfyi_popular_fonts |
limit? |
Most popular Google Fonts by rank |
Distance Tools (5 tools) -- distancefyi
| Tool | Parameters | Description |
|---|---|---|
distancefyi_calculate_distance |
lat1, lon1, lat2, lon2, same_continent? |
Full distance report (km/miles/NM), bearing, midpoint, travel times |
distancefyi_get_bearing |
lat1, lon1, lat2, lon2 |
Bearing degrees + compass direction (N, NE, E, etc.) |
distancefyi_get_midpoint |
lat1, lon1, lat2, lon2 |
Geographic midpoint coordinates |
distancefyi_get_flight_time |
distance_km |
Estimated flight time (variable speed 600-850 km/h) |
distancefyi_convert_distance |
value, from_unit, to_unit |
Distance conversion between km, miles, nautical miles |
Time Tools (5 tools) -- timefyi
| Tool | Parameters | Description |
|---|---|---|
timefyi_current_time |
timezone_id |
Current time in IANA timezone (with UTC offset, DST status) |
timefyi_time_difference |
from_tz, to_tz |
Time difference between two timezones |
timefyi_convert_time |
time_str, from_tz, to_tz |
Convert specific time across timezones |
timefyi_business_hours_overlap |
timezones, start_hour?, end_hour? |
Find overlapping business hours across timezones |
timefyi_sun_info |
latitude, longitude, timezone_id |
Sunrise, sunset, day length, current daylight status |
Unit Tools (4 tools) -- unitfyi
| Tool | Parameters | Description |
|---|---|---|
unitfyi_convert_unit |
value, from_unit, to_unit |
Convert between 220 units in 20 categories with Decimal precision |
unitfyi_conversion_table |
from_unit, to_unit |
Markdown table with common conversion values |
unitfyi_list_categories |
-- | All 20 measurement categories (length, weight, temperature, volume, etc.) |
unitfyi_list_units |
category |
All units in a category with slug, name, and symbol |
Name Tools (4 tools) -- namefyi
| Tool | Parameters | Description |
|---|---|---|
namefyi_romanize_korean |
hangul |
Revised Romanization of Korean text |
namefyi_five_elements |
stroke_count |
Five Elements category (Wood/Fire/Earth/Metal/Water) for CJK stroke count |
namefyi_element_compatibility |
element_a, element_b |
Compatibility between two Five Elements (compatible/neutral/incompatible) |
namefyi_format_population |
population |
Format large numbers with M/K suffixes |
Holiday Tools (5 tools) -- holidayfyi
| Tool | Parameters | Description |
|---|---|---|
holidayfyi_upcoming_holidays |
country_iso, n? |
Next N public holidays for ISO country code |
holidayfyi_check_holidays_on_date |
date_str, countries |
Check holidays on a specific date across multiple countries |
holidayfyi_easter_date |
year, orthodox? |
Western or Orthodox Easter date for any year |
holidayfyi_nth_weekday |
year, month, weekday, n |
Find nth occurrence of weekday in a month (e.g., 4th Thursday) |
holidayfyi_count_days_until |
target_date_str, from_date_str? |
Days countdown to a target date |
Architecture
FYIPedia MCP uses a hub aggregation pattern. Each package has its own standalone MCP server. The hub collects all tools into a single server:
fyipedia-mcp (hub server)
│
├── colorfyi.mcp_server → 9 tools prefixed with colorfyi_
├── emojifyi.mcp_server → 7 tools prefixed with emojifyi_
├── symbolfyi.mcp_server → 3 tools prefixed with symbolfyi_
├── unicodefyi.mcp_server → 4 tools prefixed with unicodefyi_
├── fontfyi.mcp_server → 6 tools prefixed with fontfyi_
├── distancefyi.mcp_server → 5 tools prefixed with distancefyi_
├── timefyi.mcp_server → 5 tools prefixed with timefyi_
├── namefyi.mcp_server → 4 tools prefixed with namefyi_
├── unitfyi.mcp_server → 4 tools prefixed with unitfyi_
└── holidayfyi.mcp_server → 5 tools prefixed with holidayfyi_
──
52 tools total
How it works:
- Hub defines a catalog of 10
(package_name, module_path)entries - At startup,
importlib.import_module()loads each package's MCP module - Tools are extracted from each package's
FastMCP._tool_manager._tools - Each tool is re-registered on the hub with a
{package}_prefix to avoid collisions - Missing packages are silently skipped -- partial installation works fine
Why a hub? Instead of configuring 10 separate MCP servers, you configure one. AI assistants see all tools in a single namespace. Install only the packages you need, and only those tools appear.
Standalone mode -- each package can also run its own MCP server independently:
{
"mcpServers": {
"colorfyi": {
"command": "python",
"args": ["-m", "colorfyi.mcp_server"]
}
}
}
Features
- 53 tools from 10 packages: Color, emoji, symbol, Unicode, font, distance, time, name, unit, holiday
- One config: Single MCP server entry instead of 10 separate configurations
- Lazy loading: Only installed packages register their tools -- no bloat
- Flexible installation: Install all tools or pick specific packages
- Tool name prefixing: Automatic
{package}_prefix prevents collisions - Graceful degradation: Missing packages are silently skipped
- MCP v1.0 compatible: Works with any MCP client (Claude, Cursor, Windsurf, Continue, etc.)
- Markdown responses: All tools return formatted markdown for readable AI output
- Type-safe: Full type annotations, strict mypy, PEP 561 compliant
- Zero lock-in: Each package's MCP server also works standalone
Also Available as CLI
Use all 10 tools from the terminal via the unified CLI:
pip install "fyipedia[all]"
fyi color info FF6B35
fyi distance calc --lat1 37.57 --lon1 126.98 --lat2 35.68 --lon2 139.65
See the fyipedia README for the full command reference.
FYIPedia Developer Tools
Part of the FYIPedia open-source developer tools ecosystem:
| Package | PyPI | npm | Description |
|---|---|---|---|
| colorfyi | colorfyi |
@fyipedia/colorfyi |
Color conversion, WCAG contrast, harmonies, 809 named colors |
| emojifyi | emojifyi |
emojifyi |
Emoji encoding & metadata for 3,953 Unicode emojis |
| symbolfyi | symbolfyi |
symbolfyi |
Symbol encoding in 11 formats + Unicode properties |
| unicodefyi | unicodefyi |
unicodefyi |
Unicode character lookup, 17 encodings + search |
| fontfyi | fontfyi |
fontfyi |
Google Fonts metadata, CSS helpers, font pairings |
| distancefyi | distancefyi |
distancefyi |
Haversine distance, bearing, travel times |
| timefyi | timefyi |
timefyi |
Timezone operations, time differences, sunrise/sunset |
| namefyi | namefyi |
namefyi |
Korean romanization, Five Elements, CJK stroke count |
| unitfyi | unitfyi |
unitfyi |
Unit conversion, 220 units, 20 categories |
| holidayfyi | holidayfyi |
holidayfyi |
Holiday dates, Easter calculation, 100+ countries |
| fyipedia | fyipedia |
-- | Unified CLI (fyi command) for all 10 tools |
| fyipedia-mcp | fyipedia-mcp |
-- | Unified MCP server for AI assistants |
Links
- Model Context Protocol -- MCP specification
- FYIPedia GitHub Organization -- All repositories
- fyipedia CLI -- Terminal interface for all 10 tools
- awesome-fyi -- Curated list of FYIPedia resources
- Source Code -- MIT licensed
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。