XML 76 R60.htm IDEA: XBRL DOCUMENT
v3.25.0.1

Stock-Based Compensation - Summary of Information Regarding the Company's Outstanding and Exercisable Stock Options (Detail) - $ / shares | 12 Months Ended |  |  |
--- | --- | --- | --- | ---
Dec. 31, 2024 | Dec. 31, 2023 | Dec. 31, 2022 | Dec. 31, 2021
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] |  |  |  |
Options Outstanding | 2,420,000 | 2,097,000 | 2,326,000 | 2,041,000
Weighted Average Remaining Contractual Life (in years) | 5 years 10 months 24 days |  |  |
Weighted Average Exercise Price | $ 10.25 | $ 10.8 | $ 11.38 | $ 10.66
Options Exercisable | 1,545,000 |  |  |
Weighted average remaining contractual life, options exercisable | 4 years 3 months 18 days |  |  |
Weighted average exercise price, options exercisable | $ 10.07 |  |  |
Range One [Member] |  |  |  |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] |  |  |  |
Options Outstanding | 355,000 |  |  |
Lower range of exercise price | $ 0.01 |  |  |
Upper range of exercise price | $ 4 |  |  |
Weighted Average Remaining Contractual Life (in years) | 1 year 3 months 18 days |  |  |
Weighted Average Exercise Price | $ 3.56 |  |  |
Options Exercisable | 355,000 |  |  |
Range of exercise prices, minimum, options exercisable | $ 0.01 |  |  |
Range of exercise price, maximum, options exercisable | $ 4 |  |  |
Weighted average remaining contractual life, options exercisable | 1 year 3 months 18 days |  |  |
Weighted average exercise price, options exercisable | $ 3.56 |  |  |
Range Two [Member] |  |  |  |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] |  |  |  |
Options Outstanding | 488,000 |  |  |
Lower range of exercise price | $ 4.01 |  |  |
Upper range of exercise price | $ 8 |  |  |
Weighted Average Remaining Contractual Life (in years) | 3 years 9 months 18 days |  |  |
Weighted Average Exercise Price | $ 6.87 |  |  |
Options Exercisable | 488,000 |  |  |
Range of exercise prices, minimum, options exercisable | $ 4.01 |  |  |
Range of exercise price, maximum, options exercisable | $ 8 |  |  |
Weighted average remaining contractual life, options exercisable | 3 years 9 months 18 days |  |  |
Weighted average exercise price, options exercisable | $ 6.87 |  |  |
Range Three [Member] |  |  |  |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] |  |  |  |
Options Outstanding | 605,000 |  |  |
Lower range of exercise price | $ 8.01 |  |  |
Upper range of exercise price | $ 12 |  |  |
Weighted Average Remaining Contractual Life (in years) | 9 years 2 months 12 days |  |  |
Weighted Average Exercise Price | $ 8.41 |  |  |
Options Exercisable | 20,000 |  |  |
Range of exercise prices, minimum, options exercisable | $ 8.01 |  |  |
Range of exercise price, maximum, options exercisable | $ 12 |  |  |
Weighted average remaining contractual life, options exercisable | 9 years |  |  |
Weighted average exercise price, options exercisable | $ 8.43 |  |  |
Range Four [Member] |  |  |  |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] |  |  |  |
Options Outstanding | 751,000 |  |  |
Lower range of exercise price | $ 12.01 |  |  |
Upper range of exercise price | $ 16 |  |  |
Weighted Average Remaining Contractual Life (in years) | 6 years 6 months |  |  |
Weighted Average Exercise Price | $ 14.96 |  |  |
Options Exercisable | 514,000 |  |  |
Range of exercise prices, minimum, options exercisable | $ 12.01 |  |  |
Range of exercise price, maximum, options exercisable | $ 16 |  |  |
Weighted average remaining contractual life, options exercisable | 5 years 10 months 24 days |  |  |
Weighted average exercise price, options exercisable | $ 15.21 |  |  |
Range Five [Member] |  |  |  |
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] |  |  |  |
Options Outstanding | 221,000 |  |  |
Lower range of exercise price | $ 16.01 |  |  |
Upper range of exercise price | $ 20 |  |  |
Weighted Average Remaining Contractual Life (in years) | 6 years 9 months 18 days |  |  |
Weighted Average Exercise Price | $ 17.51 |  |  |
Options Exercisable | 168,000 |  |  |
Range of exercise prices, minimum, options exercisable | $ 16.01 |  |  |
Range of exercise price, maximum, options exercisable | $ 20 |  |  |
Weighted average remaining contractual life, options exercisable | 6 years 9 months 18 days |  |  |
Weighted average exercise price, options exercisable | $ 17.51 |  |  |

X
- Definition Share-based compensation arrangement by share-based payment award options exercisable, exercise price per share, maximum. + References No definition available. + Details
Name: | mhh_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableExercisePricePerShareMaximum
Namespace Prefix: | mhh_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition Share-based compensation arrangement by share-based payment award options exercisable exercise price per share minimum. + References No definition available. + Details
Name: | mhh_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableExercisePricePerShareMinimum
Namespace Prefix: | mhh_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 35 -Paragraph 1D -Publisher FASB -URI https://asc.fasb.org/1943274/2147480483/718-10-35-1D Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 35 -Paragraph 3 -Publisher FASB -URI https://asc.fasb.org/1943274/2147480483/718-10-35-3 Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (a)(1) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (a)(2) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 5: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (a)(3) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 6: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(i) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 7: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(ii) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 8: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iii) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 9: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iv) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 10: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iv)(01) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 11: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iv)(02) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 12: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iv)(03) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 13: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iv)(04) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 14: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(2)(i) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 15: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(2)(ii) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 16: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(2)(iii) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 17: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(2)(iii)(01) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 18: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(2)(iii)(02) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 19: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(2)(iii)(03) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 20: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (d)(1) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 21: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (d)(2) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 22: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (e)(1) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 23: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (e)(2) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 24: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (f)(2)(i) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 25: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (f)(2)(ii) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 26: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (f)(2)(iii) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 27: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (f)(2)(iv) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 28: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (f)(2)(v) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iii) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | instant

X
- Definition The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iii) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | instant

X
- Definition Number of options outstanding, including both vested and non-vested options. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(i) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(ii) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | instant

X
- Definition Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(i) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(1)(ii) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | instant

X
- Definition The floor of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (g) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition The ceiling of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (g) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 718 -SubTopic 10 -Subparagraph (e)(1) -Name Accounting Standards Codification -Paragraph 2 -Section 50 -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=mhh_RangeOneMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=mhh_RangeTwoMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=mhh_RangeThreeMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=mhh_RangeFourMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis=mhh_RangeFiveMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |