Part 3: Add custom tools (FRED MCP + ThinQ MCP)
Special workshop - Add the FRED Economic MCP and ThinQ MCP custom tools
Part 3: Add custom tools (FRED MCP + ThinQ MCP)
Previous step: Part 2: Add pre-built tools Back to start: Overview
In this part, you will add two custom MCP servers that are not provided by Microsoft by default.
- FRED Economic MCP — U.S. Federal Reserve economic data
- ThinQ MCP — query and control LG IoT appliances
Both servers are private MCP servers deployed to Azure Container Apps. You connect by entering the URL and API key directly.
1. How to add an MCP tool (common steps)
On the agent overview screen, click the Tools section → + Add a tool.
In the add-tool popup, select the MCP tab → the Model Context Protocol (MCP) option at the bottom.
Pre-built vs Custom: The Work IQ tools added in Part 2 were selected from the catalog, but for custom MCP you enter the URL and authentication information directly.
2. Connect the FRED Economic MCP server
2-1. Introduction to FRED MCP
FRED (Federal Reserve Economic Data) is a database of more than 810,000 economic time series provided by the Federal Reserve Bank of St. Louis. Through this MCP server, the agent can query and analyze economic indicators in real time.
| Item | Details |
|---|---|
| Data source | FRED (Federal Reserve Economic Data) |
| Number of series | 810,000+ economic time series |
| Provided tools | 6 theme tools + 1 search tool |
| Transport | Streamable HTTP |
| Deployment environment | Azure Container Apps (Korea Central) |
2-2. Enter the server URL and authentication information
Enter the information below exactly:
| Item | Value |
|---|---|
| Server name | FRED_Economic_MCP |
| Server description | An MCP server for querying U.S. Federal Reserve (FRED) economic data. It provides economic indicators across six themes: consumer demand, commodities and exchange rates, macroeconomy, industrial production, EV and energy markets, and robotics and actuators. It can also search more than 810,000 time series by keyword. |
| Server URL | https://fred-mcp-python.purplehill-ba85d6d0.koreacentral.azurecontainerapps.io/mcp |
| Authentication | API key |
| Authentication type | Header |
| Header name | x-fred-api-key |
| API key value | (Provided separately during the lab) |
After entering the information, click Create.
Why the server description matters: Copilot Studio’s generative AI orchestrator uses the server description to decide when to call this tool. The description must be specific enough for the agent to behave correctly.
2-3. Check the tool list
When the connection succeeds, the seven tools below are displayed:
| Tool name | Description | Key series |
|---|---|---|
get-consumer-demand |
Consumer demand indicators | PCEDG (durable goods consumption), UMCSENT (consumer sentiment), HOUST (housing starts), HSN1F (home sales), TOTALSA (auto sales) |
get-cost-pressure |
Cost/margin pressure indicators | DEXKOUS (KRW/USD exchange rate), DCOILWTICO (WTI oil price), WPUSI019011 (copper PPI), WPU101 (steel PPI), PCU325211325211 (synthetic resin PPI) |
get-macro-environment |
Macroeconomic environment | GDPC1 (real GDP), CPIAUCSL (CPI), CUSR0000SAD (durable goods CPI), FEDFUNDS (federal funds rate), UNRATE (unemployment rate), DGS10 (10-year Treasury), DGS2 (2-year Treasury) |
get-industry-production |
Industry/manufacturing trends | INDPRO (industrial production index), DGORDER (durable goods orders), AMTMNO (manufacturing orders), IPMAN (manufacturing production) |
get-ev-energy-market |
EV/energy market | TOTALSA (auto sales), AISRSA (inventory-to-sales ratio), DCOILWTICO (oil price), GASREGW (retail gasoline price), IPG3361T3S (auto production) |
get-robotics-actuator |
Robotics & actuators | NASDAQNQROBO (AI Robotics Global), NASDAQNQROBOUS (AI Robotics US), PCU333995333995 (actuator PPI), WPU114303 (actuator and parts PPI), IPG3332S (industrial machinery production), A33ENO (industrial machinery orders), IPG3336S (power transmission equipment production), ATGPNO (power transmission equipment orders) |
search-fred-series |
Search FRED series | Explore 810,000+ time series by keyword |
2-4. Tool parameters
All theme tools (get-*) use the same parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
indicator |
string (optional) | Query all | Query only a specific series ID (for example, FEDFUNDS) |
period |
enum | 1y |
Query period: 6m, 1y, 3y, 5y |
units |
enum | lin |
Data transformation: lin (raw), chg (change), pch (% change), pc1 (year-over-year %), pca (annualized), log (natural log) |
Parameters for the search-fred-series tool:
| Parameter | Type | Default | Description |
|---|---|---|---|
query |
string (required) | — | Search keyword (for example, semiconductor production) |
limit |
integer | 10 |
Number of search results (1-50) |
Lab test: In the agent test pane, enter “Show me the U.S. unemployment-rate trend over the last 3 years.” The agent should call
get-macro-environment(indicator="UNRATE", period="3y").
3. Connect the ThinQ MCP server
3-1. Introduction to ThinQ MCP
ThinQ MCP is an MCP server that queries and controls IoT appliances registered in the LG ThinQ platform.
| Item | Details |
|---|---|
| Target devices | Air conditioners, washing machines, refrigerators, air purifiers, dryers, and more |
| Provided features | Device query, status check, control commands, energy usage query |
| Transport | Streamable HTTP |
| Deployment environment | Azure Container Apps (Korea Central) |
3-2. Enter the server URL and authentication information
Select + Add a tool → MCP → Model Context Protocol (MCP) again, and enter the information below:
| Item | Value |
|---|---|
| Server name | ThinQ_MCP |
| Server description | An MCP server for querying and controlling smart appliances on the LG ThinQ IoT platform. It provides features for checking the status of air conditioners, washing machines, refrigerators, and other devices, executing control commands, and querying energy usage. |
| Server URL | https://thinqmcp-http-typescript.kindmoss-12649bc0.koreacentral.azurecontainerapps.io/mcp |
| Authentication | API key |
| Authentication type | Header |
| Header name | x-pat-token |
| API key value | (Provided separately during the lab) |
After entering the information, click Create.
3-3. Check the tool list
When the connection succeeds, the tools below are displayed:
| Tool name | Description |
|---|---|
getDevices |
Query the list of all registered devices |
getDeviceStatus |
Query the current status of a specific device (operation mode, temperature, whether it is running, and so on) |
controlDevice |
Execute device control commands (change air conditioner temperature, start a washing machine, and so on) |
getEnergyUsage |
Query energy usage by device |
3-4. Tool parameters
getDeviceStatus / controlDevice / getEnergyUsage:
| Parameter | Type | Description |
|---|---|---|
deviceId |
string (required) | Unique device ID (queried with getDevices) |
Additional parameters for controlDevice:
| Parameter | Type | Description |
|---|---|---|
command |
string (required) | Control command (for example, setTemperature, start, stop) |
value |
string/number | Value for the command (for example, temperature 24) |
Lab test: Enter “Show me the list of registered appliances.” The agent calls
getDevices.
4. Check all tools
After all tools are added, you should see the following in the agent’s Tools section:
| Tool group | Number of tools | Type |
|---|---|---|
| Work IQ Mail MCP | 4-5 | Pre-built |
| Work IQ Teams MCP | 3-4 | Pre-built |
| Work IQ Copilot MCP | 1-2 | Pre-built |
| FRED Economic MCP | 7 | Custom |
| ThinQ MCP | 4 | Custom |
5. Integration tests
5-1. Single-tool tests — check basic behavior
In the agent test chat, first use simple prompts to confirm that each tool is called correctly:
FRED macroeconomy (get-macro-environment):
| # | Test question | Expected parameters |
|---|---|---|
| 1 | “Show me the U.S. unemployment-rate trend.” | indicator=UNRATE, period=1y |
| 2 | “Show me the 3-year CPI trend as a year-over-year change rate.” | indicator=CPIAUCSL, period=3y, units=pc1 |
| 3 | “Query 5-year federal funds rate data as raw values.” | indicator=FEDFUNDS, period=5y, units=lin |
| 4 | “Compare 10-year and 2-year Treasury yields and check whether the yield curve is inverted.” | Query all without indicator → compare DGS10, DGS2 |
| 5 | “Show me the 3-year trend for durable goods CPI (CUSR0000SAD). Analyze whether monitor and display product prices are rising.” | indicator=CUSR0000SAD, period=3y |
FRED consumer demand (get-consumer-demand):
| # | Test question | Expected parameters |
|---|---|---|
| 6 | “Show me U.S. durable goods consumption expenditures for the last 1 year.” | indicator=PCEDG, period=1y |
| 7 | “Show me the 3-year trend for the consumer sentiment index as a year-over-year change rate.” | indicator=UMCSENT, period=3y, units=pc1 |
| 8 | “Are new housing starts increasing? Tell me using the latest 6 months of data.” | indicator=HOUST, period=6m |
| 9 | “Show me the year-over-year change rate for total U.S. auto sales.” | indicator=TOTALSA, units=pc1 |
FRED cost pressure (get-cost-pressure):
| # | Test question | Expected parameters |
|---|---|---|
| 10 | “Tell me the KRW/USD exchange-rate trend over the last 6 months.” | indicator=DEXKOUS, period=6m |
| 11 | “How has the WTI crude oil price moved recently?” | indicator=DCOILWTICO |
| 12 | “Compare copper PPI and steel PPI.” | Query all without indicator |
| 13 | “Show me the synthetic resin PPI trend. Analyze how monitor housing and plastic component costs are changing.” | indicator=PCU325211325211 |
FRED industry/manufacturing (get-industry-production):
| # | Test question | Expected parameters |
|---|---|---|
| 14 | “Query the 3-year U.S. industrial production index trend as a year-over-year change rate.” | indicator=INDPRO, period=3y, units=pc1 |
| 15 | “Are new durable goods orders increasing? Analyze whether B2B orders related to IT equipment and displays are recovering.” | indicator=DGORDER |
| 16 | “Analyze factory operating conditions by combining the manufacturing production index and new orders.” | Query all without indicator |
FRED EV/energy (get-ev-energy-market):
| # | Test question | Expected parameters |
|---|---|---|
| 17 | “What is the auto inventory-to-sales ratio? Are inventories building up?” | indicator=AISRSA |
| 18 | “Show me WTI oil prices and retail gasoline prices together.” | Query all without indicator |
FRED series search (search-fred-series):
| # | Test question | Expected keyword |
|---|---|---|
| 19 | “Search for FRED series related to semiconductor production.” | semiconductor production |
| 20 | “Search for series related to computer and electronic product manufacturing.” | computer electronic product manufacturing |
| 21 | “Search whether FRED has data related to display panel or flat panel.” | display panel / flat panel |
| 22 | “Find indicators related to information processing equipment.” | information processing equipment |
FRED robotics & actuators (get-robotics-actuator):
| # | Test question | Expected parameters |
|---|---|---|
| 23 | “Query all economic indicators related to robotics and actuators.” | Query all without indicator |
| 24 | “Show me the Nasdaq AI Robotics Index trend over the last 3 years.” | indicator=NASDAQNQROBO, period=3y |
| 25 | “How has actuator PPI changed recently? Judge whether demand is increasing.” | indicator=PCU333995333995 |
| 26 | “Show me industrial machinery new orders and the production index. Check whether demand for robotic equipment is recovering.” | Query all without indicator → check IPG3332S, A33ENO |
| 27 | “Show me 5-year power transmission equipment new orders data as a year-over-year change rate. I want to understand the demand trend for servo motors and reducers.” | indicator=ATGPNO, period=5y, units=pc1 |
| 28 | “Show me the year-over-year change rate for fluid power cylinder and actuator PPI.” | indicator=WPU114303, units=pc1 |
Work IQ (Mail/Teams/Copilot):
| # | Test question | Expected called tool |
|---|---|---|
| 29 | “Summarize emails related to ‘market analysis’ that I received in the last week.” | Work IQ Mail |
| 30 | “Search recent Teams conversations with the keyword ‘display costs’.” | Work IQ Teams |
| 31 | “Find whether there are consulting reports or market reports among my recently received emails.” | Work IQ Mail |
ThinQ (IoT):
| # | Test question | Expected called tool |
|---|---|---|
| 32 | “Show me the list of registered appliances.” | ThinQ getDevices |
5-2. FRED complex analysis tests — multiple-tool combinations
Check whether multiple FRED tools are called sequentially from a single question. The tests are sorted by difficulty (⭐).
⭐ Two-tool combinations (basic):
| # | Test question | Expected call order |
|---|---|---|
| 1 | “Analyze exchange rates and oil prices together and tell me the impact on import costs.” | get-cost-pressure (DEXKOUS + DCOILWTICO) → synthesize |
| 2 | “Evaluate U.S. economic conditions by combining GDP and the unemployment rate.” | get-macro-environment (GDPC1 + UNRATE) → synthesize |
| 3 | “Look at copper and synthetic resin PPI together with exchange rates, and diagnose the level of import cost pressure for display components.” | get-cost-pressure (DEXKOUS + WPUSI019011 + PCU325211325211) → synthesize |
| 4 | “Compare durable goods CPI with durable goods consumption expenditures, and analyze whether consumption is increasing relative to monitor and display prices.” | get-macro-environment (CUSR0000SAD) + get-consumer-demand (PCEDG) → compare |
| 5 | “Combine the consumer sentiment index and durable goods consumption to analyze the consumption outlook for IT electronics (monitors, TVs).” | get-consumer-demand (UMCSENT + PCEDG) → outlook |
| 6 | “Analyze the AI Robotics Index and actuator PPI together to compare market sentiment and real demand in the Physical AI market.” | get-robotics-actuator (NASDAQNQROBO + PCU333995333995) → compare |
| 7 | “Combine industrial machinery new orders and actuator PPI to judge whether this is the time to expand investment in robotic automation equipment.” | get-robotics-actuator (A33ENO + PCU333995333995) → investment judgment |
⭐⭐ Three-tool combinations (intermediate):
| # | Test question | Expected call order |
|---|---|---|
| 6 | “Analyze the display margin outlook by reviewing cost trends from exchange rates, copper, and synthetic resin PPI, then checking price pass-through with durable goods CPI.” | get-cost-pressure → get-macro-environment (CUSR0000SAD) → margin analysis |
| 7 | “Check yield-curve inversion, GDP, and unemployment, then add industrial production index and durable goods orders trends to evaluate recession risk and manufacturing impact.” | get-macro-environment → get-industry-production → comprehensive judgment |
| 8 | “Combine housing starts, consumer sentiment, and durable goods consumption expenditures to analyze the demand outlook for home monitors and TV displays.” | get-consumer-demand (HOUST + UMCSENT + PCEDG) → demand outlook |
| 9 | “Check the interest-rate and GDP environment, then add durable goods orders trends to diagnose the B2B display equipment investment environment.” | get-macro-environment → get-industry-production (DGORDER) → B2B investment judgment |
| 10 | “Combine robotics and actuator indicators with industrial production and macroeconomic data to evaluate the industrial robot equipment investment environment.” | get-robotics-actuator → get-industry-production → get-macro-environment → comprehensive evaluation |
| 11 | “Analyze power transmission equipment new orders, the AI Robotics Index, and interest rates together to diagnose the servo motor and reducer market outlook.” | get-robotics-actuator (ATGPNO + NASDAQNQROBO) → get-macro-environment (FEDFUNDS) → outlook |
⭐⭐⭐ Four or more tool combinations (advanced):
| # | Test question | Expected call order |
|---|---|---|
| 10 | “Review display cost trends using exchange rates, copper, and synthetic resin PPI, then analyze durable goods CPI and consumer sentiment together to evaluate the monitor market profitability outlook.” | get-cost-pressure → get-macro-environment → get-consumer-demand → comprehensive profitability |
| 11 | “Combine yield-curve inversion, GDP, unemployment, and the industrial production index, then add exchange rates and commodity PPI to evaluate this year’s display manufacturing investment environment.” | get-macro-environment → get-industry-production → get-cost-pressure → comprehensive judgment |
| 12 | “After searching for computer and electronic product manufacturing series, combine the related indicators with exchange-rate and commodity data and durable goods CPI to comprehensively diagnose display industry conditions.” | search-fred-series → get-cost-pressure → get-macro-environment → comprehensive diagnosis |
| 13 | “Query all robotics and actuator indicators, add exchange rates, commodity PPI, interest rates, and industrial production data, and create a briefing that comprehensively evaluates the Physical AI business investment environment.” | get-robotics-actuator → get-cost-pressure → get-macro-environment → get-industry-production → comprehensive briefing |
5-3. FRED + Work IQ complex analysis tests — macroeconomy × internal communications
These scenarios combine FRED economic data with email, Teams conversations, and consulting materials for practical business judgment.
⭐ Simple — FRED + email/chat combinations:
| # | Test question | Expected behavior |
|---|---|---|
| 1 | “Summarize recently received emails related to ‘market analysis,’ and also show U.S. unemployment-rate and GDP trends.” | Work IQ Mail → get-macro-environment → provide information in parallel |
| 2 | “Search recent Teams conversations related to ‘commodity prices,’ and show actual copper, steel, and synthetic resin PPI trends together.” | Work IQ Teams → get-cost-pressure → compare conversation content vs actual data |
| 3 | “Find content in recent emails that includes the keyword ‘exchange rate,’ and also query KRW/USD exchange-rate data for the last 6 months.” | Work IQ Mail → get-cost-pressure (DEXKOUS) → compare email content with actual trends |
⭐⭐ Intermediate — internal-material validation + economic-data cross-analysis:
| # | Test question | Expected behavior |
|---|---|---|
| 4 | “Find recently received consulting report emails, summarize the key points, and validate the economic indicators mentioned in the reports with actual data from FRED.” | Work IQ Mail (consulting email search) → related FRED tools → cross-validation |
| 5 | “Search recent Teams discussions related to the ‘display market,’ and fact-check the team discussion using durable goods consumption, consumer sentiment, and durable goods CPI data.” | Work IQ Teams → get-consumer-demand + get-macro-environment → fact check |
| 6 | “Reevaluate the pricing policy based on commodity price changes. Find related internal emails and Teams conversations, and strengthen the rationale with FRED exchange-rate and commodity PPI data.” | Work IQ Mail + Teams → get-cost-pressure → pricing policy review |
| 7 | “Find and summarize recent email reports related to the ‘North America market,’ then add GDP, unemployment-rate, and interest-rate data to evaluate whether the report content matches current economic conditions.” | Work IQ Mail → get-macro-environment → compare report vs actual economy |
⭐⭐⭐ Advanced — comprehensive judgment + communication deliverables:
| # | Test question | Expected behavior |
|---|---|---|
| 8 | “Summarize recent reporting emails, query exchange rates, commodity PPI, durable goods CPI, and the industrial production index, compare and analyze them against market conditions, then summarize the key risk points and share them to Teams as a card.” | Work IQ Mail → get-cost-pressure + get-macro-environment + get-industry-production → risk analysis → Teams card |
| 9 | “Search Teams discussions related to ‘rising display costs,’ analyze the level of cost pressure using copper and synthetic resin PPI and exchange-rate data, then write an opinion email with response options.” | Work IQ Teams → get-cost-pressure → analysis → Work IQ Mail (write email) |
| 10 | “Comprehensively search internal consulting-material emails and Teams discussions, query GDP, interest rates, durable goods orders, and exchange-rate data from FRED, and write a briefing email on this year’s display business unit investment environment.” | Work IQ Mail + Teams → get-macro-environment + get-industry-production + get-cost-pressure → write briefing email |
| 11 | “Write a decision-opinion email about entering a new market. Find related internal materials in email and Teams, then combine GDP, interest rates, consumer sentiment, industrial production index, and exchange-rate data to build the rationale.” | Work IQ Mail + Teams → get-macro-environment + get-consumer-demand + get-industry-production + get-cost-pressure → write decision email |
| 12 | “Search FRED for computer and electronic product manufacturing series, summarize related Teams discussions and email reports together, and share a display-industry business outlook report as a Teams card.” | search-fred-series → Work IQ Teams + Mail → comprehensive report → Teams card |
| 13 | “Search Teams discussions related to ‘robotics’ or ‘automation,’ combine robotics and actuator indicators with industrial production and interest-rate data, and write a briefing email on the Physical AI business investment environment.” | Work IQ Teams → get-robotics-actuator + get-industry-production + get-macro-environment → write briefing email |
5-4. Complex scenarios — full workflow tests
Check whether the business scenarios defined in the agent’s Instructions work end to end:
| Test question | Expected behavior |
|---|---|
| “Review the North America market strategy.” | SharePoint search → FRED query → gap analysis → Teams adaptive card |
| “Reevaluate the pricing policy based on commodity price changes.” | SharePoint search → FRED cost indicators → margin analysis → Teams notification |
| “Summarize recent reporting emails and compare them with market conditions.” | Mail query → FRED validation → risk analysis → Teams notification |
| “Write a decision-opinion email about entering a new market.” | FRED + SharePoint → decision email draft → Teams notification |
| “Judge whether this is the right time to expand investment in robotics and automation equipment.” | FRED Tool 6 (robotics and actuators) + Tool 3 (interest rates) + Tool 4 (industrial production) → investment judgment |
| “Create a briefing on the investment environment for the Physical AI business.” | FRED Tool 6 + Tool 2 (exchange rates and commodities) + Tool 3 (macroeconomy) → briefing → Teams card |
✅ Part 3 completion checklist
- Has FRED Economic MCP been connected, and are seven tools enabled?
- Has ThinQ MCP been connected, and are four tools enabled?
- Do all single-tool tests pass?
- Are multiple tools called sequentially in complex scenario tests?
- Are Teams adaptive card notifications sent correctly?
In the next step, you will add an email-received trigger. ➡️ Part 4: Add an email-received trigger